5个数排序所需的最少比较次数
若使用插入排序,最坏情况需要10次比较:1 + 2 + 3 + 4
若使用归并排序,最坏情况需要9次比较:nlogn
7次比较:
- 标记待排序元素为A,B,C,D,E。
- 先将A与B、C与D比较,假设A < B,C < D,再将A与C比较,不妨设A < C,则A < C < D,当前共3次比较。(若A > C,那就C < A < B,两种情况等价)
- 再将E折半插入A < C < D,最多需要2次比较(E先与C比较,若与C相等则只需1次比较,若小于C就再和A比较,若大于C就再和D比较)。
- 假设结果为A < C < D < E,再将B插入A < C < D < E,因为已有A < B,所以只需要将B插入C < D < E中,折半最多需要2次比较。
本文作者 : preccrep
原文链接 : https://preccrep.github.io/2020/11/21/5%E4%B8%AA%E6%95%B0%E6%8E%92%E5%BA%8F%E6%89%80%E9%9C%80%E7%9A%84%E6%9C%80%E5%B0%91%E6%AF%94%E8%BE%83%E6%AC%A1%E6%95%B0/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
留下足迹