[数据结构学习笔记2] 大O法表示程序的时间复杂度(O(n))
程序运行都是需要时间的,我们用大O法来表示,程序在最坏情况下,运行时间和输入规模的关系。
一般有这么几种大O时间:
快:
闪电:O(1) - 常量复杂度 - 和输入无关;比如通过数组下标访问元素;简单数学运算,如看末尾数字是否是基数;
火箭:O(log n) - 对数复杂度 - 时间增长随数字规模增长缓慢;这种复杂度通常把问题分而治之,当输入规模翻倍时,时间却增长很小;
平均:
兔子:O(n) - 线性复杂度 - 时间随输入规模呈线性增长;比如对数组中每个元素操作;
自行车:O(n log n) - 线性对数复杂度 - 比如归并排序和快速排序;
慢:
大象:O(n^2) - 平方复杂度 - 时间随输入规模增长呈平方级增长;比如冒泡排序,选择排序;
乌龟:O(2^n) - 指数复杂度 - 时间随输入规模增长呈指数级增长;
小树生长:O(n!) - 阶乘复杂度。
标签:
数据结构笔记
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战