快速排序

来源:互联网 发布:知乎 特朗普 盗窃 编辑:程序博客网 时间:2024/05/22 13:27

快速排序是一种分治的递归算法,将数组S排序基本思路如下:

1.如果S元素个数小于等于1,返回

2.取S中任一元素x作为基准

3.将小于x的元素分配到数组S1中,将大于x的元素分配到S2中

4.递归将S1、S2排序

下面是快速排序的一种实现

void Qsort(int a[], int l, int h){if(l >= h) return;int i = l, j = h, x = a[l];while(i < j){while( i < j && a[j] >= x) j--;if(i < j) a[i] = a[j];while( i < j && a[i] <= x) i++;if(i < j) a[j] = a[i];}a[i] = x;Qsort(a,l,i-1);Qsort(a,i+1,h);}


0 0
原创粉丝点击