欢迎光临散文网 会员登陆 & 注册

快速排序笔记

2021-10-02 00:02 作者:ISEKAI  | 我要投稿

声明:“填坑法”的思想转自菜鸟教程。最后所给代码与菜鸟教程原代码并不完全一致。


快排的思想是:

    选择序列一个基数,把当前序列分成两部分,一部分小于基数,一部分大于基数。等于基数的数可以放在任意一部分。 然后递归地用快排进行排序,递归边界是数组长度为1。

这是思想,但是实现可以不那么死板,用“填坑法”会比较好理解:

  1. 定义双指针分别指向两端

  2. 选择右指针的数作为基数(同时相当于最右边挖了一个坑)

  3. 从左指针向右找小于基数的,填到右指针坑里(但这时左指针的位置也出现了一个新坑)

  4. 再从右指针向左找大于基数的,填到左指针坑里(这时右指针的位置变成了坑)

  5. 不断重复3 4步,直到左指针等于右指针

  6. 最后左指针(右指针)的位置有一个坑,把基数填到这个坑里

  7. 递归调用快排


快速排序笔记的评论 (共 条)

分享到微博请遵守国家法律