时间复杂度O(1) O(n)表示什么
在刷面试题中的算法题经常出现时间复杂度O(n),空间复杂度O(1)很多时候不知道是什么意思
空间复杂度与时间复杂度是数据结构的复杂度,在现在储存设备越来越便宜的时代,时间复杂度是决定程序运行速度的重要因素
算法时间复杂度是衡量计算性能的指标,反映了程序执行时间随着输入规模的增长而增长的量级,很大程度的反映出算法性能的好坏,这个量级用大写的O加()表示
从好到坏常用算法复杂度排序如下
O(1):常数级
最低复杂程度,使用时间或使用空间与输入数据大小没有关系,无论输入数据多大,使用时间或使用空间不变
哈希算法就是典型的常熟级算法
O(log n):对数级
使用时间或空间随着输入数据增大,复杂度增大为log n倍,log n倍是n为2的几次方的上标值
二分查找就是对数级算法
O(n):线性级
输入数据增大几倍,时间或空间增大几倍
大部分遍历就是线性级算法
O(nlog n):线性对数级
使用时间或空间随着输入数据增大,复杂度增大为nlog n倍,nlog n倍是n为2的几次方的上标值乘以n
二分查找就是对数级算法
O(n²):平方级
输入数据增大几倍,时间或空间增大几的平方倍
冒泡排序就是平方级算法,不过复杂度是从O(n)->O(n²),冒泡排序在数据错位数量很小时适用
O(n³):立方级
输入数据增大几倍,时间或空间增大几的立方倍
O(2ⁿ):指数级
输入数据增大几倍,时间或空间增大2的几的次方倍
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)