复杂度问题

一.时间复杂度

1.特点

时间复杂度:计算语句执行次数,语句执行次数中,规模最大的作为该代码的时间复杂度

2.方法

(1)终止条件

(2)找循环次数和循环变量的关系

(3)和n的关系

例如:

3.常见算法的时间复杂度

插入排序:O(n²)

​冒泡排序:O(n²)

​选择排序:O(n²)

快速排序:O(n log n)(最坏 O(n²))

归并排序:O(n log n)

堆排序:O(n log n)

二.空间复杂度

1.定义

算法除了输入数据本身外,额外开辟的空间

2. 常见

O(1):没开额外数组,只用几个变量

​ 插入、冒泡、选择排序

O(n):开了一个长度为 n 的数组

​ 归并排序、计数排序

​O(log n):递归栈(如快排)

​ O(n):递归深度 n(如坏的快排)

  1. 插入排序

时间:O(n²) 空间:O(1)

  1. 交换排序(冒泡)

时间:O(n²) 空间:O(1)

  1. 关键路径

时间:O(n + e)(n顶点,e边) 空间:O(n + e)

相关推荐
AI科技星9 分钟前
ELN 升级:π 级数自动生成器全域数理架构
大数据·人工智能·python·算法·金融
强盛机器学习~13 分钟前
2026年SCI一区新算法-傅里叶变换优化算法(FTO)-公式原理详解与性能测评 Matlab代码免费获取
算法·matlab·进化计算·群体智能·傅里叶变换·元启发式算法
王老师青少年编程17 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【跳跃与过河问题】:过河问题
c++·算法·贪心·csp·信奥赛·跳跃与过河问题·过河问题
是个西兰花18 分钟前
C++11:智能指针
开发语言·c++·智能指针·rall
CN-Dust36 分钟前
【C++专题】输出cout例题
开发语言·c++
沉默-_-1 小时前
备战蓝桥杯-哈希
c++·学习·算法·蓝桥杯·哈希算法
Reese_Cool1 小时前
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
开发语言·c++·蓝桥杯·stl
拼好饭和她皆失1 小时前
基础算法--写给算法小白的模板指南:快速掌握核心代码,蓝桥杯必备模板
算法
吞下星星的少年·-·1 小时前
rotate函数应用模板
算法
保持清醒5401 小时前
二叉链表实现
数据结构