排序算法的复杂度和稳定性
排序算法的复杂度和稳定性
复杂度又分为时间复杂度和空间复杂度
-
时间复杂度 : 表示执行排序算法时消耗的时间
-
空间复杂度 : 排序算法在运行过程中占用存储空间的大小
-
稳定性 : 排序前后相同的元素 原来的位置是否改变, 如果改不了就是不稳定的如果不改变就是稳定的。
接下来将对他们的复杂度和稳定性做解析:
时间 空间 稳定性
选择: 0(n^2) 0(1) 不稳定
冒泡: 0(n^2) 0(1) 稳定
插入: 0(n^2) 0(1) 稳定
快速: 0(nlogn) 0(nlogn) 不稳定
二分: 0(logn)
- O(1)表示 表示最低复杂度 一般是常量值1 。复杂度不会受到数据量的大小改变而改变(哈希算法)。
- O(n):数据量增大n倍 复杂度耗时也增大n倍 (一重循环变量).
- O(logn) :当数据量增大到n倍时 n=256 logn是2 的底数
- O(n^2) :对n个数实现排序 需要对n*n进行查询(冒泡排序)
- O(nlogn) : 就是n 和logn相乘 当数据量增大256 耗时=256*8=2048(快速排序)

浙公网安备 33010602011771号