数据结构 第十章 内部排序.docx
- 文档编号:30401452
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:17
- 大小:21.11KB
数据结构 第十章 内部排序.docx
《数据结构 第十章 内部排序.docx》由会员分享,可在线阅读,更多相关《数据结构 第十章 内部排序.docx(17页珍藏版)》请在冰豆网上搜索。
数据结构第十章内部排序
第十章内部排序‘
10.23
voidInsert_Sort1(SqList&L)//监视哨设在高下标端的插入排序算法
{
k=L.length;
for(i=k-1;i;--i)//从后向前逐个插入排序
if(L.r[i].key>L.r[i+1].key)
{
L.r[k+1].key=L.r[i].key;//监视哨
for(j=i+1;L.r[j].key>L.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
voidBiInsert_Sort(SqList&L)//二路插入排序的算法
{
intd[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] 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 voidSLInsert_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].key 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;i { while(p 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 voidBubble_Sort1(inta[],intn)//对包含n个元素的数组a进行改进的冒泡排序 { change=n-1;//change指示上一趟冒泡中最后发生交换的元素 while(change) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第十章 内部排序 第十 内部 排序