排序算法之快排

来源:互联网 发布:单词社交网络可靠吗 编辑:程序博客网 时间:2024/04/29 06:29

快速排序是常见排序算法中速度最快的,最好的和平均时间复杂度为O(nlogn),空间复杂度为O(nlogn),是一个不稳定的排序方法。

其实现过程如下:

1、取出第开始的元素作为测试值,先从右侧开始遍历;

2、将测试值与右侧值比较,右侧值若大于等于测试值,则继续左移再与测试值比较。若右侧遍历到测试值的下一个元素仍找不到小于测试值的元素,则证明测试值为当前序列中最小的元素,其位置不变,跳过步骤3直接执行步骤4。若找到右侧小于测试值的元素,将此元素赋给测试值所在的位置,执行步骤3;

3、然后再从左侧测试值的下一个元素开始遍历,将其与测试值比较。若左侧遍历到步骤2之前的元素时,仍找不到大于测试值的元素,则将测试值赋给步骤2所找到的元素所在的位置,即将测试值所在的元素与找到的元素交换位置,执行步骤4。若找到大于测试值的元素,将此元素赋给在步骤2中找到的右侧小于测试值的元素的位置,将测试值赋给此元素所在的位置;

4、至此保证测试值左侧均小于等于测试值,右侧均大于测试值,即在测试值处将原序列转换为左侧均小于右侧的序列,再次分别对测试值分开的两边序列((:,i-1)和(i+1,:),除去i)分别递归进行上述1、2、3过程,直到所有元素均有序。




0 0