数据结构8645归并排序(非递归算法).doc

数据结构8645归并排序(非递归算法).doc

ID:55584507

大小:14.50 KB

页数:3页

时间:2020-05-19

数据结构8645归并排序(非递归算法).doc_第1页
数据结构8645归并排序(非递归算法).doc_第2页
数据结构8645归并排序(非递归算法).doc_第3页
资源描述:

《数据结构8645归并排序(非递归算法).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、#include#defineMAXSIZE100typedefintKeytype;typedefstruct{Keytypekey;}recordtype;typedefstruct{recordtyper[MAXSIZE+1];intlength;}table;voidvisit(table*t){inti;for(i=1;i<=t->length;i++)printf("%d",t->r[i].key);}voidmerge(table*tabs,table*tabg,intu,intm,intv){inti,j,k,t;i=u;j=m+1

2、;k=u;while(i<=m&&j<=v){if(tabs->r[i].key<=tabs->r[j].key){tabg->r[k]=tabs->r[i];i++;}else{tabg->r[k]=tabs->r[j];j++;}k++;}if(i<=m)for(t=i;t<=m;t++)tabg->r[k+t-i]=tabs->r[t];elsefor(t=j;t<=v;t++)tabg->r[k+t-j]=tabs->r[t];}voidmergepass(table*tabs,table*tabg,intlen){inti,j,n;n=tabg->leng

3、th=tabs->length;i=1;while(i<=n-2*len+1){merge(tabs,tabg,i,i+len-1,i+2*len-1);i=i+2*len;}if(i+len-1r[j]=tabs->r[j];}voidmergesort(table*tab){intlen;tabletemp;len=1;while(lenlength){mergepass(tab,&temp,len);visit(&temp);pri

4、ntf("");len=2*len;*tab=temp;}}intmain(){inti;tabletab;scanf("%d",&tab.length);for(i=1;i<=tab.length;i++)scanf("%d",&tab.r[i].key);mergesort(&tab);return0;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。