快速排序法c语言?
快速排序是基于分治技术的重要排序算法,排序算法按照元素的值对它们进行划分。
划分是对给定数组中的元素的重新排序,使得A [ s ] A[s]A[s]左边的元素都小于等于A [ s ] A[s]A[s],而右边A [ s ] A[s]A[s]右边的元素都大于等于A [ s ] A[s]A[s]。
显然,建立了一个划分以后,A [ s ] A[s]A[s]已经位于它在有序数组中的最终结果,接下来我们可以继续对A [ s ] A[s]A[s]前和A [ s ]A[s]A[s]后的子数组分别进行排序(例如,使用同样的方法)。
注意,它和合并排序不同之处在:
在合并排序算法中,将问题划分为两个子问题,是很快的,算法的主要工作在于合并子问题的解;
在快速排序中,算法的主要工作在于划分阶段,而不需要再去合并子问题的解了。