1.算法排序的时间复杂度:
时间复杂度o(n^2)
冒泡排序,选择排序,插入排序
时间复杂度o(n*logn)
归并排序,快速排序,堆栈排序,希尔排序
时间复杂度o(n)
计数排序和基数排序
2.算法排序的空间复杂度
o(1)
冒泡排序,选择排序,插入排序,堆排序,希尔排序
o(nlogn)
快速排序
o(N)
归并排序
o(M)
计数排序和基数排序
3.稳定性:相同值的元素排序前和排序后值保持不变
稳定的排序算法:冒泡排序,插入排序,归并排序,计数排序,基数排序,
不稳定的排序算法:选择排序,快速排序,堆排序,希尔排序
选择排序原因:在选择最小值和位置为0的数交换的时候产生
快速排序不稳定例子.png快速排序原因:在随机选择相同值中间的数的,两边的相同值的不不是被划分到选择值得左边就是选择值的右边
堆排序不稳定例子.png堆排序原因:在每次建立大根堆后,堆顶元素会换到最后的位置上去
希尔排序不稳定例子.png希尔排序:步长为2时,第二个1跳两部,造成了不稳定
网友评论