当前位置: 首页 > news >正文

【数据结构】 时间复杂度

目录

一、循环结构类时间复杂度分析

1. 单层循环

2. 嵌套循环

二、递归类时间复杂度分析

三、链表操作类时间复杂度

四、特殊循环条件类

五、排序算法复杂度对比

六、易错点总结


仅供参考

一、循环结构类时间复杂度分析

1. 单层循环

例题1(2011年统考真题)

x=2;
while(x < n/2)
    x = 2*x;

解析

  • 基本操作x=2*x,每次执行后x呈指数增长。

  • 执行次数:设循环执行次数为t,则终止条件为 2^(t+1) < n/2,解得 t ≈ log₂n - 2

  • 时间复杂度O(log₂n) 

例题2(立方根循环)

int i=0;
while(i*i*i <= n) i++;

解析

  • 基本操作i++,循环终止条件为 i³ > n

  • 执行次数i的最大值为 n^(1/3)

  • 时间复杂度O(n^(1/3))

2. 嵌套循环

例题3(2014年统考真题)

count=0;
for(k=1; k<=n; k*=2)
    for(j=1; j<=n; j++)
        count++;

解析

  • 外层循环次数k每次乘以2,执行次数为 log₂n

  • 内层循环次数:固定执行n次。

  • 总频次n * log₂n,时间复杂度为 O(n log n)

例题4(等比数列循环)

int sum=0;
for(int i=1; i<n; i*=2)
    for(int j=0; j<i; j++)
        sum++;

解析

  • 外层循环次数i取值为 1, 2, 4, ..., 2^t,次数为 log₂n

  • 内层循环总频次1 + 2 + 4 + ... + 2^(log₂n) = 2n - 1

  • 时间复杂度O(n) 

二、递归类时间复杂度分析

例题5(2012年统考真题)

int fact(int n){
    if(n<=1) return 1;
    return n * fact(n-1);
}

解析

  • 递归深度:递归调用次数为n次,每次操作为常数时间。

  • 时间复杂度O(n)

三、链表操作类时间复杂度

例题6(2013年统考真题)
题目:合并两个升序链表为降序链表,最坏时间复杂度。
解析

  • 比较次数:每次比较确定一个元素位置,最坏需比较m+n次。

  • 优化分析:由于每次比较可确定一个元素,实际复杂度为 O(max(m,n))

四、特殊循环条件类

例题7(2019年真题变体)

X=0;
while(N >= X*X + X + 1)
    X++;

解析

  • 终止条件X² + X + 1 > N,近似解为 X ≈ √N

  • 时间复杂度O(√N)

五、排序算法复杂度对比

常见排序算法时间复杂度总结

算法平均时间复杂度最坏情况空间复杂度稳定性
快速排序O(n log n)O(n²)O(log n)不稳定
归并排序O(n log n)O(n log n)O(n)稳定
冒泡排序O(n²)O(n²)O(1)稳定
堆排序O(n log n)O(n log n)O(1)不稳定
:稳定性指相等元素的相对顺序是否改变 

六、易错点总结

  1. 循环变量非线性增长:如 i *= 2 或 i = i^3,需通过解不等式确定次数。

  2. 递归调用次数:递归深度与每层操作数的乘积决定总复杂度。

  3. 嵌套循环独立性:若内外层循环变量无关,直接相乘;若相关(如内层循环依赖外层变量),需求和计算总频次。

相关文章:

  • 安卓学习笔记-声明式UI
  • 如何通过ETL对WebService进行调用
  • 《算法和数据结构》算法篇
  • 数据结构-散列表查找(哈希表)
  • qt之开发大恒usb3.0相机二
  • (1)课堂 1--5,这五节主要讲解 mysql 的概念,定义,下载安装与卸载
  • div或button一些好看实用的 CSS 样式示例
  • xcode手动安装iOS Simulator Runtime
  • 深入理解设计模式之状态模式
  • Keepalived 配置 VIP 的核心步骤
  • Qwen3与DeepSeek R1的性能对比
  • 为什么单张表索引数量建议控制在 6 个以内
  • PHP生成pdf方法
  • VR 赋能病毒分离鉴定:开启微观探索新视界
  • 基于cornerstone3D的dicom影像浏览器 第二十四章 显示方位、坐标系、vr轮廓线
  • Spark实时流数据处理实例(SparkStreaming通话记录消息处理)
  • FortiAI继续扩展Security Fabric 平台,打造智能化威胁防御体系
  • Mysql常用知识3:Kafka和数据库优化
  • 【HTML-13】HTML表格合并技术详解:打造专业数据展示
  • 高考加油(Python+HTML)
  • 男人和女人床上做性视频网站/新站如何快速收录
  • 四川省住房和城乡建设局网站/shopify seo
  • 做一家网站费用吗/seo推广怎么做视频教程
  • 舟山网站建设优化/谷歌广告联盟一个月能赚多少
  • 北京中国建设工程造价管理协会网站/seo是什么意思怎么解决
  • 合肥公司建设网站/竞价推广课程