首页 内部排序算法的实现与比较

内部排序算法的实现与比较

举报
开通vip

内部排序算法的实现与比较内部排序算法的实现与比较 #include"iostream" #include"stdio.h" #include"stdlib.h" #include"string.h" #include"time.h" using namespace std; using std::cout; using std::endl; void MergeSort(int r[],int r1[],int s,int t); void Merge(int r[],int r1[],int s,int m,int...

内部排序算法的实现与比较
内部排序算法的实现与比较 #include"iostream" #include"stdio.h" #include"stdlib.h" #include"string.h" #include"time.h" using namespace std; using std::cout; using std::endl; void MergeSort(int r[],int r1[],int s,int t); void Merge(int r[],int r1[],int s,int m,int t); #define LIST_INIT_SIZE 50000 int bj1=0,yd1=0,bj2=0,yd2=0,bj3=0,yd3=0,bj4=0,yd4=0,bj5=0,yd5=0,bj6=0,yd6=0,n; //yd,bj 为记录关键字比较和移动的次数 typedef struct { int key; }ElemType; typedef struct { ElemType *elem; int length; }SqList; void addlist(SqList &L)//初始化顺序 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf { a: printf("请输入你要输入的个数:"); scanf("%d",&n); if(n>50000) { printf("超出范围重新输入!!!\n"); goto a; } L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) exit(0); } void random(SqList &L)//随机数产生程序 { L.length=0; static bool first=true; if(first) { srand(time(0)); first=false; }//使输入相同个数时每次产生的随机数不同 for(int i=1;i30000) goto a; ++L.length; } } void memory(SqList &M,SqList &L)//记录L,使每个排序算法都用一组相同的随机数{ M.length=0; for(int i=1;iL.elem[j+1].key) { L.elem[0].key=L.elem[j].key; L.elem[j].key=L.elem[j+1].key; L.elem[j+1].key=L.elem[0].key; yd1+=3; } } } } void InsertSort(SqList &L)//直接插入排序 { int i,j; for(i=2;i<=L.length;i++) { if(L.elem[i].key=pivotkey) --high; L.elem[low]=L.elem[high]; bj4++; yd4++; while (lowL.elem[j].key) { k=j; bj5++; } } if(i!=k) { L.elem[0].key=L.elem[i].key; L.elem[i].key=L.elem[k].key; L.elem[k].key=L.elem[0].key; yd5+=3; } w++; } d=d/2; w=1; } } void MergePass(SqList &L)//归并排序 { int r[5000],r1[5000],s=0,t,k; k=L.length; t=k-1; MergeSort(r,r1,0,t);//调用方法MergeSort() } void MergeSort(int r[],int r1[],int s,int t) { if(s==t)r1[s]=r[s]; else { int m=(s+t)/2; MergeSort(r,r1,s,m);//递归调用 MergeSort(r,r1,m+1,t); Merge(r1,r,s,m,t);//调用方法Merge() } } void Merge(int r[],int r1[],int s,int m,int t) { int i=s; int j=m+1; int k=s; while(i<=m&&j<=t) { if(r[i]<=r[j]){r1[k++]=r[i++];bj6++;yd6++;} else {r1[k++]=r[j++];bj6++;yd6++;} } if(i<=m)while(i<=m) {r1[k++]=r[i++];yd6++;} else while(j<=t) {r1[k++]=r[j++];yd6++;} } void main() { SqList L,M; int a; M.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!M.elem)exit(0); a: cout<<" ---------------------------------内部排序算法比较-----------------------------\n"; cout<<"************************************欢迎使用***********************************\n"; cout<<"**********************************(1)运行程序**********************************\n"; cout<<"**********************************(2)退出系统**********************************\n"; cout<
本文档为【内部排序算法的实现与比较】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:31KB
软件:Word
页数:0
分类:互联网
上传时间:2019-09-12
浏览量:17