不要说我水...
导论伪代码实现,晚上时间不多了,抽空再多写写.
code:
#include<iostream>
#include<algorithm>
#define REP(i,from,to) for(int i=(from);i<=(to); ++i)
using namespace std;
int a[]={9,8,0,7,6,5,4,3,2,1};
int partition(int *a,int p,int r);
void quicksort(int *a,int p,int r){
if(p<r){
int q = partition(a,p,r);
quicksort(a,p,q-1);
quicksort(a,q,r);
}
}
int partition(int *a,int p,int r){
int x = a[r];
int i=p-1,j;
REP(j,p,r-1){
if(a[j]<=x){
i++;
swap(a[i],a[j]);
}
}
swap(a[i+1],a[r]);
return i+1;
}
int main(){
quicksort(a,0,9);
REP(i,0,9)
cout<<a[i]<<' ';
cout<<endl;
return 0;
}
posted on 2012-07-04 23:15
Gin 阅读(337)
评论(0) 编辑 收藏 引用 所属分类:
Introduction to algorithms