美文网首页
快速排序、堆排序、归并排序为什么快「更新中」

快速排序、堆排序、归并排序为什么快「更新中」

作者: 5c625929d082 | 来源:发表于2019-11-08 17:09 被阅读0次

本文为个人排序算法思考笔记,目的在于要点记录而非详细论述,希望能给初学的朋友带来一些启发。

1.相较于冒泡排序,快速排序为什么快

我们直接比较一下冒泡和快排的排序过程:对于这样一个数组[6,1,2,7,9,3,4,5,10,8],快排的操作如下
1.选择一个数作为基准数,这里选择6
2.进行一次循环,将小于6的数放到左边,大于6的数放到右边
3.对两边的数组再各自选取一个基准数,再进行循环
4.使用递归重复上述步骤,数组长度为1时停止递归
(搬运一张图,侵删)


image.png

第一趟排序过后,顺序变为[3,1,2,5,4,6,9,7,10,8],那么在下一次的排序中,'6'左边的数,不会再和右边的数比较,而对于冒泡来说或直接选择/插入排序等暴力排序来说,每排一个数都需要和剩下的数进行一次比较,产生了很多无意义的比较

2.堆排序

待更新

3.归并排序

待更新

相关文章

网友评论

      本文标题:快速排序、堆排序、归并排序为什么快「更新中」

      本文链接:https://www.haomeiwen.com/subject/sthwbctx.html