老邱排序分册讲解

实验十排序实验题1.分别用直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序和简单选择排序算法对相同的待排序列进行排序,输出排序结果;2.统计排序过程中“比较”操作的执行次数和记录“移动”的次数。【存储结构】#defineMAXSIZE20//顺序表的最大长度typedefstruct{intkey;//关键字项InfoTypeotherinfo;//其他数据项}DataType;typedefstruct{DataTyper[MAXSIZE+1];//r[0]闲置或用作哨兵单元intlength;}SqList;//分别用直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序和简单选择排序算法对相同的待排序列进行排序,输出排序结果//直接插入排序#include<stdio.h>#include<iostream.h>#include<stdlib.h>#defineMAXSIZE20typedefintKeyType;typedefcharInfoType;typedefstruct{KeyTypekey;InfoTypeotherType;}RedType;typedefstruct{RedTyper[MAXSIZE+1];intlength;}SqList;voidInsertSort(SqList&L){inti,j;for(i=2;i<=L.length;++i)if(L.r[i].key<L.r[i-1].key){L.r[0]=L.r[i];L.r[i]=L.r[i-1];for(j=i-2;L.r[0].key<L.r[j].key;--j)L.r[j+1]=L.r[j];L.r[j+1]=L.r[0];}}voidInput(SqList&L){cout<<inputn:<<endl;cin>>L.length;for(inti=1;i<L.length+1;i++)cin>>L.r[i].key;}voidPrintList(SqList&L){for(inti=0;i<L.length;i++)cout<<L.r[i+1].key<<;cout<<endl;}voidmain(){SqListL;L.length=0;Input(L);PrintList(L);cout<<InsertSort:<<endl;InsertSort(L);PrintList(L);}/*inputn:9132311679843769056132311679843769056InsertSort:111323435667769098Pressanykeytocontinue*///分别用直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序和简单选择排序算法对相同的待排序列进行排序,输出排序结果//折半插入排序#include<stdio.h>#include<iostream.h>#include<stdlib.h>#defineMAXSIZE20typedefintKeyType;typedefcharInfoType;typedefstruct{KeyTypekey;InfoTypeotherType;}RedType;typedefstruct{RedTyper[MAXSIZE+1];intlength;}SqList;voidInsertSort(SqList&L){inti,j;for(i=2;i<=L.length;++i)if(L.r[i].key<L.r[i-1].key){L.r[0]=L.r[i];L.r[i]=L.r[i-1];for(j=i-2;L.r[0].key<L.r[j].key;--j)L.r[j+1]=L.r[j];L.r[j+1]=L.r[0];}}voidInput(SqList&L){cout<<inputn:<<endl;cin>>L.length;for(inti=1;i<L.length+1;i++)cin>>L.r[i].key;}voidPrintList(SqList&L){for(inti=0;i<L.length;i++)cout<<L.r[i+1].key<<;cout<<endl;}voidBinarySort(SqList&L){inti,j;intlow,high,mid;for(i=2;i<=L.length;++i){L.r[0]=L.r[i];low=1;high=i-1;while(low<=high){mid=(low+high)/2;if(L.r[0].key<L.r[mid].key)high=mid-1;elselow=mid+1;}for(j=i-1;j>=high+1;--j)L.r[j+1]=L.r[j];L.r[high+1]=L.r[0];}}voidmain(){SqListL;L.length=0;Input(L);PrintList(L);cout<<BinarySort:<<endl;BinarySort(L);PrintList(L);}/*inputn:9132311679843769056132311679843769056BinarySort:111323435667769098Pressanykeytocontinue*///分别用直接插入排序、折半插入排序、希尔排序、冒泡排序、快速排序和简单选择排序算法对相同的待排序列进行排序,输出排序结果//希尔排序#include<stdio.h>#include<iostream.h>#include<stdlib.h>#defineMAXSIZE20typedefintKeyType;typedefcharInfoType;typedefstruct{KeyTypekey;InfoTypeotherType;}RedType;typedefstruct{RedTyper[MAXSIZE+1];intlength;}SqList;voidInsertSort(SqList&L){inti,j;for(i=2;i<=L.length;++i)if(L.r[i].key<L.r[i-1].key){L.r[0]=L.r[i];L.r[i]=L.r[i-1];for(j=i-2;L.r[0].key<L.r[j].key;--j)L.r[j+1]=L.r[j];L.r[j+1]=L.r[0];}}voidShellInsert(SqList&L,intdk){inti,j;for(i=dk+1;i<=L.length;++i)if(L.r[i].key<L.r[i-dk].key){L.r[0]=L.r[i];for(j=i-dk;j>0&&L.r[0].key<L.r[j].key;j-=dk)L.r[j+dk]=L.r[j];L.r[j+dk]=L.r[0];}}voidShellSort(SqList&L,intdlta[],intt){for(intk=0;k<t;++k){ShellInsert(L,dlta[k]);}}voidInput(SqList&L){cout<<inputn:<<endl;cin>>L.length;for(...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?