工程建设国家标准网站,天津宇昊建设集团有限公司网站,互动式网站开发,建设公司官网流程归并排序的写法
归并排序 分治双指针
1.定义一个mid
if(lr)return ;
2.分治
sort(q,l,mid); sort(q,mid1,r); 3. 双指针 int il,jmid,k0; 将双序列扫入 缓存数组 条件 while(imidjr) 两个数列比较大小 小的一方 进入缓存数组
4. 扫尾 while(…
归并排序的写法
归并排序 分治双指针
1.定义一个mid
if(lr)return ;
2.分治
sort(q,l,mid); sort(q,mid1,r); 3. 双指针 int il,jmid,k0; 将双序列扫入 缓存数组 条件 while(imidjr) 两个数列比较大小 小的一方 进入缓存数组
4. 扫尾 while(imid) temp[k]q[i]; while(jr) temp[k]q[j];
5. 复制 回去修改q[]数组的值
for (int il,j0;imid;i,j){ q[i] temp[j]; } 代码 # includeiostream #includecstdio #includecstring #includealgorithm #includesstream const int N1e510; int q[N],temp[N]; int n; void quick_sort(int q[],int l,int r){ if(lr){ return ; } int mid (lr)1; quick_sort(q,l,mid); quick_sort(q,mid1,r); int il,jmid1,k0; while(imidjr){ if(q[i]q[j]){ temp[k]q[i]; }else{ temp[k]q[j]; } } while(imid){ temp[k]q[i]; } while(jr){ temp[k]q[j]; } for(int il,j0;ir;i,j){ q[i]temp[j]; } } using namespace std; int main(){ int n; cinn; for(int i0;in;i){ scanf(%d,q[i]); } quick_sort(q,0,n-1); for(int i0;in;i){ printf(%d ,q[i]); } return 0; }