1、嵌套循环时间复杂度的计算


该程序,最上面的嵌套循环里,i每执行一次,j就执行N次,所以嵌套循环执行次数为N*N次;中间的k变量循环了2*N次;最后M变量循环10次。所以总共执行了 N*N+2*N+10 次!

所以该程序时间复杂度为O(N2)

2、双重循环时间复杂度的计算


该程序,上面的for循环执行了2*N次,下面的M循环了10次。所以该时间复杂度的函数式为 F(N)=2N+10。则时间复杂度为O(N)


该程序,上面的循环了M次,下面循环了N次,所以该时间复杂度为O(M+N)

3、常数循环时间复杂度的计算


该程序执行了100次,因为没有未知数是常数次,所以该程序的时间复杂度为O(1)。注意不是代表算法运行一次,运行的是常数次。

4、strchr时间复杂度的计算


strchr的功能是查找字符,程序大致如下:

我们假设从hello world中去查找字符,那么

所以我们认为该时间复杂度为最坏情况O(N)

5、冒泡排序的时间复杂度计算


冒泡排序的执行次数是(N-1)+(N-2)+…+1次。

举个例子来说,一个数列 5 4 3 2 1 进行冒泡升序排列,第一次大循环从第一个数(5)开始到倒数第二个数(2)结束。
比较过程:先比较5和4,4比5小,交换位置变成4 5 3 2 1,比较5和3,3比5小,交换位置变成4 3 5 2 1……最后比较5和1,1比5小,交换位置变成4 3 2 1 5,这时候共进行了4次比较交换运算,最后1个数变成了数列最大数。

对于n位的数列则有比较次数为 (n-1) + (n-2) + …… + 1 = n * (n - 1) / 2,也就是等差数列求和,这就得到了最大的比较次数。
将n * (n - 1) / 2展开得到的最大量级为n2。所以冒泡排序的时间复杂度为O(n2)

6、二分查找的时间复杂度计算


算时间复杂度不能只是去看几层循环,而是要去看它的思想。
此处,二分查找每查找一次就要除以2。假设一个数组大小为N,那么每查找一次,N就要除以2,最好的情况是O(1),最坏的情况是查找到最后N/2/2/…/2=1,也就是2x=N,所以X=log2N

所以是二分查找时间复杂度为

7、计算n的阶乘递归时间复杂度计算


递归算法:递归次数*每次递归调用的次数。
这里递归了N次,而每次调用的次数为常数次,所以可忽略,则该时间复杂度为O(N)

8、斐波那契的时间复杂度计算


这里也可用递归算法求,也就是递归次数*每次递归调用的次数。

递归次数为20+21+…+2n-1,而每次递归调用的次数为常数次可忽略不计。所以可看成等比数列求和

所以该时间复杂度为O(2N)

最后总结,我们计算时间复杂度不能单纯只看执行次数,最好是画图自己理解计算,利用公式等来求我们的时间复杂度。

数据结构:关于时间复杂度的例题计算相关推荐

  1. 数据结构与算法——时间复杂度的粗略计算

    1.什么是时间复杂度 首先我们来看一段代码: int cal(int n) {int sum = 0;int i = 1;int j = 1;for (; i <= n; ++i) {j = 1 ...

  2. 时间复杂度和空间复杂度计算

    目录 1.什么是时间复杂度和空间复杂度 1.1 时间复杂度 1.2 空间复杂度 2. 如何计算时间复杂度和空间复杂度 2.1 使用大O阶方法 2.2 计算一些常用算法的时间复杂度 2.3 计算一些常用 ...

  3. c语言动态双端栈的原理,数据结构(C语言版)例题(第三章:栈和队列)

    数据结构(C语言版)例题(第三章:栈和队列) 数据结构(C语言版)例题(第三章:栈和队列) (2008-05-09 12:33:13) 转载▼ ◆3.15③ 假设以顺序存储结构实现一个双向栈,即在一维 ...

  4. 【数据结构】时间复杂度和空间复杂度的计算

    目录 一.数据结构 1.什么是数据结构 2.什么是算法 3.数据结构和算法的重要性 4.如何学好数据结构和算法 二.算法效率 三.时间复杂度 1.时间复杂度的概念 2.时间复杂度的表示方法 3.算法复 ...

  5. 时间复杂度和空间复杂度计算(数据结构C语言实现1)

    写在前面 数据结构C语言系列,和博主一起学习简单的数据结构和算法,都是利用C语言实现,很基础,相信大家都能够学会,都有所收获.记得点赞,收获. 目录 写在前面 本节目标 基本概念 **常见算法的时间复 ...

  6. 数据结构::递归时间复杂度的计算

    开篇前言:为什么写这篇文章?笔者目前在学习各种各样的算法,在这个过程中,频繁地碰到到递归思想和分治思想,惊讶于这两种的思想的伟大与奇妙的同时,经常要面对的一个问题就是,对于一个给定的递归算法或者用分治 ...

  7. <时间复杂度和空间复杂度计算>《数据结构(C语言版)》

    人总得接受平凡和遗憾,但那不是一直自甘堕落的理由.显贵出身也好,泥腿子出身也罢,人生一世,你不仅为自己而活,你还承担着家族崛起的使命,是承上启下的一代,往大了说,也是国家.社会的一份子,总得做些有意义 ...

  8. 算法与数据结构(三) 时间复杂度分析 [例题]

    时间复杂度分析 用几种分析方法分析下面函数的时间复杂度 // 全局变量,大小为10的数组array,长度len,下标i. int array[] = new int[10]; int len = 10 ...

  9. 计算算法的时间复杂度(例题)

最新文章

  1. c2054未定义基类_c++ - 错误C2504:基类未定义 - 堆栈内存溢出
  2. Latex所有常用数学符号吐血整理!(包含大括号、等式对齐、矩阵)
  3. 【BZOJ】3224: Tyvj 1728 普通平衡树
  4. 【自动驾驶】欧拉角和旋转矩阵之间的转换
  5. LiveVideoStackCon 2021 音视频技术大会北京站 延期通告
  6. python seek tell_PYTHON学习14.09:Python seek()和tell()函数详解
  7. 黑客大佬:我是如何让50个文件一起骗过AI安防系统的?
  8. 使用Selenium或WebDriver测试GWT应用
  9. web提升服务器性能,开启一个参数就能让你的WEB性能提升3倍
  10. java 保留小数点后N位数(若干位),几种实现的方式总结
  11. R 语言求正态分布的极大似然估计
  12. launchpad乐器_一起认识 Launchpad 系列——中篇
  13. 使用EXCEL批量创建文件夹(无乱码)
  14. word表格一行不对齐解决方法
  15. CSS实现兼容浏览器的文字阴影效果
  16. 有道云笔记怎么保存html,有道云笔记怎么保存网页?有道云笔记保存路径是什么...
  17. 红孩儿编辑器的模块设计文档目录
  18. 80亿美元贷款细节曝光 阿里“移联网布局+大数据蓝图”加码IPO
  19. 【微信小程序】横向/纵向布局(98/100)
  20. amazon mechanical turk介绍

热门文章

  1. S合金元素对不锈钢组织和性能的影响
  2. “入门大数据分析:探索海量数据的奥秘“
  3. 类别不均衡问题之loss大集合:focal loss, GHM loss, dice loss 等等
  4. 关于人工智能不会使大脑变懒惰的议论文_人工智能的好处和风险:所有您需要知道的...
  5. 谷歌地图创建自定义位置_如何使用Google Home为任何命令创建自定义快捷方式
  6. java Pattern和Matcher详解
  7. List的toArray()方法和toArray(T[] a)方法
  8. Internet of Things(IOTS)and Wireless Sensor Networks Lecture1(WSNS)
  9. 大数据工程师(开发)面试系列
  10. 众筹,让别人为你买单