常用的时间复杂度比较:(其中O是同阶无穷大的意思)

其实不用刻意去记,直接算就好了,比如O(n)级与O(log2 n)可以通过比较图像看出来,y=x增长明显快于y=log2 x,所以O(n)>O(log2 n),同理:O(n^3) >O(n^3log2 n)

可以通过口诀高效背诵,时间复杂度由小到大:

下面来看看实例:
如果是双层循环嵌套,外层循环执行n次,那么内层循环执行n^2次

时间复杂度T(n)可以表示为O(n^2)+O(n)+C C为常数
顺序执行语句时间复杂度为常数级,可以忽略,
O(n)<O(n^2),n趋于无穷时,只需要考虑更高阶的O(n ^2)
所以T(n)=O(n^2),只用看最深层循环次数就行了(最高阶无穷大)

下面也是类似的计算方法
虽然判定条件为i<=n
但是有i*=2;
可以设循环次数为x
当i=2,x=1
i=2^2,x=2

i=2^m,x=m
当2^x>n时,跳出循环
x=log2 n,所以执行了log2 n次
也就是T(n)=O(log2 n),时间复杂度与log2 n同阶

当查找时,我们要分情况判断,比如下面这个算法,要找到一个元素,最好情况和最坏情况相差很大,可能第一个就找到,也可能最后找到。
如果开始就找到则为常数级复杂度,最后找到则要循环n次
如果平均算的话,要找的元素在每个地方概率都为1/n,那么如果在第i个位置则要找i次
计算循环次数=(1+2+3+…+n)* (1/n),也是一个n级复杂度

但我们一般不考虑最好情况,考虑平均时间复杂度和最坏情况时间复杂度比较多,更能防止实际中出现问题

【数据结构学习笔记】算法时间复杂度与同阶无穷大之捉大放小相关推荐

  1. 数据结构学习笔记:时间复杂度

    数据结构学习笔记:时间复杂度 1.大O函数 O -- Order of Magnitude -- 同阶 2.常用大O函数 3.常用大O函数图像 4.案例演示

  2. 数据结构学习笔记:变位词侦测案例

    数据结构学习笔记:变位词侦测案例 通过字符串变位词侦测问题可以很好地了解具有不同数量级的算法.变位词,就是两个字符串构成要素完全相同,但是要素的排列顺序不同.比如,heart与earth.python ...

  3. 《数据结构学习笔记》-持续记录

    数据结构学习笔记 1.基本概念 1.1 数据 2.数据结构 2.1逻辑结构 2.1.1 集合结构 2.1.2 线性结构 2.1.3 树形结构 2.1.4 图形结构 2.2物理结构(存储结构) 2.2. ...

  4. 考研数据结构学习笔记1

    考研数据结构学习笔记1 一.绪论 1.基本概念和术语 2.数据结构三要素 2.1逻辑结构 2.1.1 集合结构 2.1.2 线性结构:一对一 2.1.3 树形结构:一对多 2.1.4 图状结构:多对多 ...

  5. 数据结构学习笔记(王道)

    数据结构学习笔记(王道) PS:本文章部分内容参考自王道考研数据结构笔记 文章目录 数据结构学习笔记(王道) 一.绪论 1.1. 数据结构 1.2. 算法 1.2.1. 算法的基本概念 1.2.2. ...

  6. 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

    目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...

  7. Python数据结构学习笔记——队列和双端队列

    目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...

  8. 数据结构 - 学习笔记 - 红黑树

    数据结构 - 学习笔记 - 红黑树 定义 简介 知识点 1. 结点属性 2. 前驱.后继 3. 旋转 查找 插入 父结点为黑色 父结点为红色 1. 有4种情形只需要变色(对应234树4结点) 1.1. ...

  9. 考研[*数据结构*]学习笔记汇总(全)

    文章目录: 一:预备阶段 二:基础阶段笔记 三:冲刺阶段笔记 四:各章节思维导图 五:题库 来源:王道计算机考研 数据结构 一:预备阶段 之前的数据结构笔记 数据结构--学习笔记--入门必看[建议收藏 ...

最新文章

  1. 汉字笔画数据_统计学原理 数据的预处理
  2. 工业相机帧率与曝光时间的关系
  3. codeforces 650D. Zip-line 线段树
  4. md5 算法java实现_java实现MD5算法
  5. centos7升级openssh
  6. JDK下载地址、SecureCRT中JDK安装和环境配置、SecureCRT窗口编程、linux下命令运行小程序
  7. mysql开启慢查询日志及查询--windows
  8. 免费素材下载:超棒的摄影相关图标下载
  9. python中dir用法_Python dir() 函数
  10. 新增的表单元素 结构伪类选择器
  11. java 字符串转成 json 数组并且遍历
  12. 短信通道防盗刷,短信发送策略
  13. 我编写了两套代码分析twitter的反爬虫机制(附源码讲解)
  14. 动态域名解析概述及操作步骤讲解
  15. 介绍一个关于小米Zigbee的开源项目
  16. Vue 中echarts的数据参数使用、X轴Y轴
  17. 在沟通管理中,如何给予有效的反馈意见? | 每天成就更大成功
  18. go项目部署服务器保姆级教程(带图)
  19. linux的几个发行网站
  20. Java工程师学快速Python(4)----- I/O与异常处理

热门文章

  1. 写给金融危机下毕业生的16条忠告
  2. Lombok插件的简介
  3. notepad++搜索结果窗口不见了,怎么找回?
  4. 云计算Linux运维——Linux系统管理——文件目录管理
  5. 正则表达式限制VUE input只能输入正整数
  6. Emscripten胶水代码初探
  7. 艾美捷胆固醇肉豆蔻酸酯技术信息说明
  8. MATLAB产生白噪声
  9. Nginx+rtmp+ffmpeg搭建视频转码服务
  10. 未来星计算机一级考试模拟,全国计算机等级考试一级考试模拟题