本站首页    管理页面    写新日志    退出


«February 2026»
1234567
891011121314
15161718192021
22232425262728

最新日志

有几天没来了
男人容易吗?
关于程序员的一些说法
算法定义
C++程序设计最佳实践
上海小记
九钟排序原码(九) 堆排序
九钟排序原码(八) 快速排序
九钟排序原码(七)基数排序
九钟排序原码(六)直接选择排序

最近的评论

回复:大西洋月刊》:我们将如何与中国作战
回复:九钟排序原码(七)基数排序
回复:九钟排序原码(七)基数排序

连接





[原码系列]九种排序原码(四)归并排序
ShM1|y_sun 发表于 2006/7/6 11:07:32

void CSortDlg::MergeSort(int x[]) {        int temp_array[10];        int len=1;        while (len<10) {    //归并排序               MergePass(x,temp_array,len);//一趟两路归并后归并项长度加倍               len*=2;               MergePass(temp_array,x,len);               len*=2;        } //     delete[] temp_array; }   void CSortDlg::MergePass(int init_array[],int merge_array[],const int len) {//一趟归并排序        int i=0;        while (i+2*len<=9) {//对长度为len的子表两两归并,直到表中剩余元素个数不足2*len为止               merge(init_array,merge_array,i,i+len-1,i+2*len-1);               i+=2*len;        }        if (i+len<=9)                      merge(init_array,merge_array,i,i+len-1,9);                      else                                                          for (int j=i;j<=9;j++) {//若不能做归并,就复制                             merge_array[j]=init_array[j];                      }                               }     void CSortDlg::merge(int init_array[],int merge_array[],const int l,const int m,const int n) {        int i=l,j=m+1,k=l;           while (i<=m&&j<=n)                  if (init_array[i]<=init_array[j]) {                         merge_array[k]=init_array[i];                         i++;k++;                  }                  else                  {                         merge_array[k]=init_array[j];                         j++;k++;                  }                      if (i<=m)                         for (int n1=k,n2=i;n1<=n&&n2<=m;n1++,n2++) {                                merge_array[n1]=init_array[n2];                         }                else                                for (int n1=k, n2=j;n1<=n&&n2<=n;n1++,n2++) {                                      merge_array[n1]= init_array[n2];                                }                            }  

阅读全文(1455) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



公告

人在上海不断的学技术,学生活,再苦再累也要坚持!

专题

首页(20)
上海心情(3)
原码系列(8)
技术文档(3)
软件分类(2)
硬件分类(0)

留言

签写新留言


统计

blog名称:
日志总数:20
评论数量:37
留言数量:0
访问次数:81023
建立时间:2006年7月5日

 

 

 


站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.629 second(s), page refreshed 144822190 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号