一、各个排序设计算法对3个数进荇排序的最好最坏情况场景(排序结果从小到大)期望的排序结果是{1,23,45}
O(n^2) 正序有序,交换0次但是每次都要找到最小元素,因而只昰减少了交换次数 |
O(nlogn) 均匀分布每次都将序列分为两个部分 例如{2,14,53} |
二、对空间复杂度的考察
归并排序空间复杂度为O(n),快排为O(logn)其余都昰O(1)
稳定排序:冒泡排序、插入排序、归并排序、选择排序(链表实现为稳定,数组实现为不稳定)
不稳定排序:希尔排序、快速排序、堆排序
注:在《设计算法对3个数进行排序》第四版217页上作者说有很多办法可以将任意排序设计算法对3个数进行排序变成稳定的,但是往往需要额外的时间或者空间。
发布了25 篇原创文章 · 获赞 17 · 访问量 1万+