排序算法之快速排序

来源:互联网 发布:网络电子游戏官网 编辑:程序博客网 时间:2024/04/30 08:55

快速排序在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较。

该方法的基本思想是:

1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

3.再对左右区间重复第二步,直到各区间只有一个数。


int quickSort(int *a, int left, int right){if(left < right){return;}int i = left;int j = right;int x = a[i];while(i < j){while(i < j && a[j] > x){j--;}if(i < j){a[i] = a[j];i++;}while(i < j && a[i] < x){i++;}if(i < j){a[j] = a[i];j--;}}a[i] = x;quickSort(int *a, int left, i-1);quickSort(int *a, int i+1, right);return i;}



0 0
原创粉丝点击