快排

来源:互联网 发布:web报表软件 编辑:程序博客网 时间:2024/06/02 12:42

参照《算法导论》

#include<iostream>using namespace std;void swap(int &i,int &j){int tmp = i;i = j;j = tmp;return;}int patition(int*a, int l,int r){int pivort = a[r]; //比较元素int i = l-1;for(int j=l;j<r;j++){if(a[j]<=pivort){i++;swap(a[i],a[j]);}}swap(a[i+1],a[r]);return i+1;}void qsort(int* a, int l, int r){if(l>=r)return;int i = patition(a,l,r);qsort(a,l,i-1);qsort(a,i+1,r);}int main(){int array[] = {2,8,1,3,5,6,4};int len = sizeof(array)/sizeof(array[0]);qsort(array,0,len-1);for(int i = 0;i<len;i++){cout << array[i] << ", ";}cout<<endl;return 0;}