快速排序(QuickSort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:
从要排序的数据中取一个数为“基准数”。
通过一趟排序将要排序的数据分割成独立的两部分,其中左边的数据都比“基准数”小,右边的数据都比“基准数”大。
然后再按步骤2对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
该思想可以概括为:挖坑填数 + 分治法。
定义两个指针,begin和end分别指向第一个元素和最后一个元素,基准值key=arr[end];
begin从前向后移动,当遇到大于key的时候停下来,将begin位置的数据放置end处,begin变为坑;
end从后开始向前移动,当遇到小于key的时候停下来,将end处的数据放置坑(begin)处,end变为坑,begin开始移动;
重复2、3两步,直至begin与end相遇,最后的一个坑放key。
---------------------