您的位置:首页 > 产品设计 > UI/UE

快速排序实现(QuickSort)

2016-03-10 14:04 555 查看
快速排序两种实现



<span style="font-size:10px;">#include<iostream>
using namespace std;

int a[100];

//function declear
void quickSort(int a[],int p,int r);
void exchange(int i,int j);
int positon(int a[],int p,int r);

void quickSort(int a[],int p,int r){
if(p<r)
{
int q=positon(a,p,r);
quickSort(a,p,q-1);
quickSort(a,q+1,r);
}
return ;
}

int positon(int a[],int p,int r){
int x=a[p];
a[0]=a[p];
while(p<r){
while(p<r&&r>=x)	--r;
a[p]=a[r];
while(p<r&&r<=x)	++p;
a[r]=a[p];
}
a[r]=a[0];
return r;
}

int main(){
for(int i=1;i<=5;i++){
cin>>a[i];
}
quickSort(a,1,5);
for(int i=1;i<=5;i++){
cout<<a[i]<<" ";
}
}</span>




<span style="font-size:10px;">#include<iostream>
using namespace std;

int a[100];

//function declear
void quickSort(int a[],int p,int r);
void exchange(int i,int j);
int positon(int a[],int p,int r);

void quickSort(int a[],int p,int r){
if(p<r)
{
int q=positon(a,p,r);
quickSort(a,p,q-1);
quickSort(a,q+1,r);
}
return ;
}

void exchange(int i,int j){
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}

int positon(int a[],int p,int r){
int x=a[r];
int i=p-1;
for(int j=p;j<r;j++){
if(a[j]<=x){
i=i+1;
exchange(i,j);
}
}
exchange(r,i+1);
return i+1;
}

int main(){
for(int i=0;i<5;i++){
cin>>a[i];
}
quickSort(a,0,4);
for(int i=0;i<5;i++){
cout<<a[i]<<" ";
}

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