1、简述
快速排序(Quicksort)是对冒泡排序算法的一种改进。
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
(摘自 百度百科)
2、动图演示
(摘自 夏海峰-图解十大经典排序算法)
说明:
- 如果区域内只有一个数,退出程序,否则进入步骤2;
- 以该区域内的第一个数为基准数a(初始区域为所有数);
- 将区域内的所有数(除a外)分为两部分:大于(或等于)a的部分G、小于a的部分S,并将S移至G的左边(交换操作伴随着比较操作,即在每个数和a比较的同时考虑是否要将之交换到S部分);
- 在划分结束后,交换基准数和S中最右边的数,由此完成:a的左边,全是小于a的数(S),右边全是大于a的数(G);
- 在S和G内再执行操作(1-5);