- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 内部排序
10.23
void Insert_Sort1(SqList L)//监视哨设在高下标端的插入排序算法{??k=L.length;??for(i=k-1;i;--i) //从后向前逐个插入排序????if(L.r[i].keyL.r[i+1].key)????{??????L.r[k+1].key=L.r[i].key; //监视哨??????for(j=i+1;L.r[j].keyL.r[i].key;++j)????????L.r[j-1].key=L.r[j].key; //前移??????L.r[j-1].key=L.r[k+1].key; //插入????}}//Insert_Sort1
10.24
void BiInsert_Sort(SqList L)//二路插入排序的算法{??int d[MAXSIZE]; //辅助存储??x=L.r.key;d=x;??first=1;final=1;??for(i=2;i=L.length;i++)??{????if(L.r[i].key=x) //插入前部????{??????for(j=final;d[j]L.r[i].key;j--)????????d[j+1]=d[j];??????d[j+1]=L.r[i].key;??????final++;????}????else //插入后部????{??????for(j=first;d[j]L.r[i].key;j++)????????d[j-1]=d[j];??????d[(j-2)%MAXSIZE+1]=L.r[i].key;??????first=(first-2)%MAXSIZE+1; //这种形式的表达式是为了兼顾first=1的情况????}??}//for??for(i=first,j=1;d[i];i=i%MAXSIZE+1,j++)//将序列复制回去????L.r[j].key=d[i];}//BiInsert_Sort
10.25
void SLInsert_Sort(SLList L)//静态链表的插入排序算法{??L.r[0].key=0;L.r[0].next=1;??L.r[1].next=0; //建初始循环链表??for(i=2;i=L.length;i++) //逐个插入??{????p=0;x=L.r[i].key;????while(L.r[L.r[p].next].keyxL.r[p].next)??????p=L.r[p].next;????q=L.r[p].next;????L.r[p].next=i;????L.r[i].next=q;??}//for??p=L.r[0].next;??for(i=1;iL.length;i++) //重排记录的位置??{????while(pi) p=L.r[p].next;????q=L.r[p].next;????if(p!=i)????{??????L.r[p]-L.r[i];??????L.r[i].next=p;????}????p=q;??}//for}//SLInsert_Sort
10.26
void Bubble_Sort1(int a[ ],int n)//对包含n个元素的数组a进行改进的冒泡排序{??change=n-1; //change指示上一趟冒泡中最后发生交换的元素??while(change)??{????for(c=0,i=0;ichange;i++)??????if(a[i]a[i+1])??????{????????a[i]-a[i+1];????????c=i+1; //c指示这一趟冒泡中发生交换的元素??????}????change=c;??}//while}//Bubble_Sort1
10.27
void Bubble_Sort2(int a[ ],int n)//相邻两趟是反方向起泡的冒泡排序算法{??low=0;high=n-1; //冒泡的上下界??change=1;??while(lowhighchange)??{????change=0;????for(i=low;ihigh;i++) //从上向下起泡??????if(a[i]a[i+1])??????{????????a[i]-a[i+1];????????change=1;??????}????high--; //修改上界????for(i=high;ilow;i--) //从下向上起泡??????if(a[i]
您可能关注的文档
最近下载
- 小升初基础专题专项突破句子赏析(试题)部编版语文六年级下册.docx
- Unit3 My weekend plan B let's talk and learn课件人教PEP英语六上.pptx
- 美丽汉字上海市小学生二届到十届2023年中文自修杯汉字小达人试卷(含参考答案).pdf
- 2024年无线电装接工(高级)职业技能考试题库大全(附答案).docx
- 九年级第一次模拟考后家长会.ppt VIP
- 河北机关事业单位工人考试图书仓储员试题(卷)与答案解析.doc
- 美丽汉字上海市小学生2023年第十届中文自修杯汉字小达人试卷(含答案).docx
- 医疗器械APQP新产品开发的资料.pdf
- 管径流量与压力关系表新.docx
- SOLIDWORKS中文版基础教程(SOLIDWORKS 2018版)PPT课件(全).pptx VIP
文档评论(0)