快速排序是对冒泡排序的一种改进算法。
快速排序的思路大概就是在冒泡排序的基础之上增添了二分的思想。
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
简而言之:将一个序列分成两份,一份中的所有数比另外一份中的任何一个数大,重复操作直到序列有序。
假设有一个等待排序的序列 $ {a[l],a[l+1],a[l+2].....a[r]} $
首先设定一个分界值,将这个序列分为两个部分
将大于或等于分界值的数放在数组右边,小于分界值的数放在到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。
此时开始"套娃",对左边和右边分解完的序列再次进行重复操作,递归(套娃)下去直到序列有序即可。
原文:https://www.cnblogs.com/donkey2603089141/p/12328993.html