本文主要是介绍快速排序实现(QuickSort),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
快速排序两种实现
<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>
这篇关于快速排序实现(QuickSort)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!