溥价 发表于 2025-6-1 00:13:14

算法的时间复杂度

整理了下算法的时间复杂度,跟大家一起分享下。
时间复杂度O是表示算法运行时间与输入数据规模(通常用 n 表示)之间的关系。算法执行时间随输入数据规模增长的变化趋势。
1、O(1) — 常数时间

[*]无论输入数据多大,执行时间固定不变。
[*]典型场景:数组按索引访问、哈希表查询。
2、O(log n) — 对数时间

[*]执行时间随数据量增长,但增速远慢于线性增长。
[*]典型场景:二分查找、平衡二叉搜索树操作。
3、O(n) — 线性时间

[*]执行时间与数据量成正比。
[*]典型场景:遍历数组/链表、线性搜索。
4、O(n log n) — 线性对数时间

[*]比线性慢,但比平方快,常见于高效排序算法。
[*]典型场景:快速排序、归并排序、堆排序。
5、O(n²) — 平方时间

[*]执行时间与数据量的平方成正比,数据量大时性能急剧下降。
[*]典型场景:冒泡排序、选择排序、暴力搜索(如两数之和的暴力解法)。
6、O(2ⁿ) — 指数时间

[*]执行时间呈指数级增长,仅适用于极小规模数据
[*]典型场景:暴力穷举、未优化的递归(如斐波那契数列原始递归)。
7、O(n!) — 阶乘时间

[*]最慢的时间复杂度,通常用于全排列问题。
[*]典型场景:全排列生成。
排序从最优到最差:O(1) < O(log n) < O(n) < O(n log n) < O(n^2) < O(2^n) < O(n!)。
空间复杂度的表示与时间复杂度的表示基本一致。时间复杂度关注的是运行时间,空间复杂度关注的是内存消耗。
现在内存比以前便宜,大家更追求时间的优化了。
此心光明,亦复何言。-- 烟沙九洲

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

窖咎 发表于 2026-1-16 16:18:51

分享、互助 让互联网精神温暖你我

嗦或 发表于 2026-1-20 16:15:50

鼓励转贴优秀软件安全工具和文档!

强怀梅 发表于 2026-1-20 18:51:37

用心讨论,共获提升!

酝垓 发表于 2026-1-21 10:17:09

热心回复!

褥师此 发表于 2026-1-21 17:51:44

感谢发布原创作品,程序园因你更精彩

咪四 发表于 2026-1-22 14:26:26

感谢分享,学习下。

啤愿 发表于 2026-1-28 01:41:47

用心讨论,共获提升!

兼罔 发表于 2026-2-2 04:10:23

懂技术并乐意极积无私分享的人越来越少。珍惜

方子楠 发表于 2026-2-5 05:26:27

鼓励转贴优秀软件安全工具和文档!

韶侪 发表于 2026-2-5 08:42:22

这个有用。

毋峻舷 发表于 2026-2-7 03:23:24

过来提前占个楼

戈森莉 发表于 2026-2-8 17:14:49

感谢,下载保存了

轩辕娅童 发表于 2026-2-9 06:29:48

喜欢鼓捣这些软件,现在用得少,谢谢分享!

峰邑 发表于 2026-2-10 11:06:57

yyds。多谢分享

于映雪 发表于 2026-2-10 19:51:53

鼓励转贴优秀软件安全工具和文档!

趣侮 发表于 2026-2-10 21:50:24

感谢发布原创作品,程序园因你更精彩

损注 发表于 2026-2-11 10:23:04

用心讨论,共获提升!

挚魉 发表于 2026-2-11 19:21:20

谢谢楼主提供!

即息极 发表于 2026-2-11 23:05:00

很好很强大我过来先占个楼 待编辑
页: [1] 2
查看完整版本: 算法的时间复杂度