快速排序算法
来源:互联网 发布:软件数据线6.7 编辑:程序博客网 时间:2024/06/10 14:15
温习下快速排序算法的实现
#include<iostream>using std::cout;using std::endl;//the length of arrayint len = 8;class QSort{public: int partition(int[],int,int); //break array into two part void swap(int&, int&); //swap two data by reference void print(int[]); void qsort(int[],int,int); //recursive call};void QSort::swap(int& a, int& b ){ int temp=a; a=b; b=temp;}int QSort::partition(int a[],int l, int r){ int left=l,right=r; int i=left-1,j=left; swap(a[left],a[right]); //divide bass on the first data while(j<r){ if(a[j]<a[right]){ i++; swap(a[i],a[j]); } j++; } swap(a[++i],a[right]); return i;}void QSort::qsort(int a[], int l, int r){ //do some checks if(a== NULL || l<0 || r>=len){ cout<<"invalid parameters"<<endl; return ; } if(l == r) return; int index=partition(a,l,r); if(index>l) qsort(a,l,index-1); if(index<r) qsort(a,index+1,r);}void QSort::print(int a[]){ for(int i=0;i<len;i++) cout<<a[i]<<" "; cout<<endl;}int main(){ int a[]={5,7,3,8,1,9,4,2}; QSort qs; qs.print(a); qs.qsort(a,0,len-1); qs.print(a); int b[]={3,6,1,9,7,3,9,1}; qs.print(b); qs.qsort(b,-2,len-1); qs.print(b); return 0;}
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法------快速排序
- 排序算法---快速排序
- 排序算法-快速排序
- 排序算法---快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- 排序算法 快速排序
- 排序算法--快速排序
- 排序算法--快速排序
- 【排序算法】快速排序
- 排序算法--快速排序
- 排序算法:快速排序
- Perforce 分支版本 合并(2005.2 版本) branch merge
- 我希望在软件开发生涯初期就知道的4件事
- Xshell显示中文乱码问题
- delphi xe2 string、AnsiString及Tbytes之间的转换
- 约瑟夫环递推解法
- 快速排序算法
- uboot第二阶段细节(环境变量和时钟)
- java反射机制
- 服务器全量发布WEB/增量发布WEB
- 注册域名,新网和万网该选谁?
- 关于static 的各种数据类型
- uboot的配置和编译:
- 关于过度拟合的,写的很不错【转】
- C++两种内存分配方式基础