快速排序实现(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>
相关文章推荐
- 使UITableViewCell之间的cell不显示分割线
- easyui tree的简单使用
- 自定义View--------Android UI模板设计
- iOS UILabel自适应高度宽度
- 让UITextField只能输入数字以及限制长度
- DUILIB项目中自定义快捷键功能的实现方法
- 关于UINavigationController — navigationBar
- UIKeyboardType
- 给UIImageView添加点击事件
- PAT-Pop Sequence (25)
- #error : Please use the /MD switch for _AFXDLL builds
- Android stduio 插件推荐(一)
- @RequestBody
- uilib 属性表全
- cf B. Guess That Car!
- UIScrollView的delaysContentTouches与canCencelContentTouches属性
- UITableView上button的点击事件(一)
- Android Volley完全解析(三),定制自己的Request
- segue走的话如何给下个界面传值
- Android Studio导入jar包,报错 finished with non-zero exit value 2