PHP 算法 时间复杂度O(1) O(n)表示什么 空间复杂度

时间复杂度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的几的次方倍

如有错误请各位大牛指出,感激不尽

posted @ 2022-01-25 18:05  树下水月  阅读(105)  评论(0编辑  收藏  举报