快速排序
代码如下:
#include <iostream> using namespace std; int Partition(int *data,int p,int r) { int i=p; int j=r+1; int x=data[p]; while(true) { while(data[++i]<x); while(data[--j]>x); if(i>=j) break; int temp=data[i]; data[i]=data[j]; data[j]=temp; } data[p]=data[j]; data[j]=x; return j; } void QuickSort(int *data,int p,int r) { if(p<r) { int q=Partition(data,p,r); QuickSort(data,p,q-1); QuickSort(data,q+1,r); } } int main() { int num; int *data; cin>>num; data=new int[num]; for(int i=0;i<num;i++) cin>>data[i]; QuickSort(data,0,num-1); for(int i=0;i<num;i++) cout<<data[i]<<" "; cout<<endl; }
运行结果: