您的位置:首页 > 其它

分治法-快速排序

2013-04-22 23:24 197 查看
快速排序

代码如下:

#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;
}


  运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: