- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 内部排序;主要内容;排序概念;;比较标准;基本操作;#define MAXSIZE 20 //一个用作示例的小顺序表的最大长度
typedef int KeyType; //定义关键字类型为整数类型
typedef struct
{ KeyType key; //关键字
InfoType otherinfo; //其它数据项
}RedType; //记录类型
typedef struct
{ RedType r[MAXSIZE+1]; //r[0]赋闲或用作哨兵单元
int length; //顺序表长度
}SqList;;10.2 插入排序;基本思想:顺序地把待排序的数据元素按其值的大小插入到已排序数据元素子集合的适当位置;;直接插入排序 ;void InsertSort(SqList L)
{ //对顺序表L做直接插入排序
for (i=2; i=L.length; ++i)
if(LT(L.r[i].key, L.r[i-1].key))
{//将L.r[i]插入有序子表
L.r[0]=L.r[i];
for(j=i-1; LT(L.r[0].key, L.r[j].key); --j)
L.r[j+1]=L.r[j]; //记录后移
L.r[j+1]=L.r[0]; //插入到正确位置
}
}//InsertSort;;void BInsertSort(SqList L)
{ //对顺序表L做折半插入排序
for (i=2; i=L.length; ++i)
{
L.r[0]=L.r[i]; //将L.r[i]暂存到L.r[0]
low=1; high=i-1;
while(low=high) //在r[low..hight]中折半查找有序插入的位置
{
m=(low+high)/2;
if(LT(L.r[0].key, L.r[m].key))
high=m-1;
else
low=m+1;
} //插入位置为hight+1
for(j=i-1;j=high+1; --j)
L.r[j+1]=L.r[j]; //记录后移
L.r[high+1]=L.r[0]; //插入到正确位置
}
}//BInsertSort;三、2-路插入排序;四、表插入排序
#define SIZE 100 //静态链表容量
typedef struct
{ RedType rc; //记录项
int next; //指针项
}SLNode; //表结点类型
typedef struct
{SLNode r[SIZE]; //0号单元为表头结点
int length; //链表当前长度
}SlinkListType; //静态链表类型
采用静态链表结构,令r[0]为表头结点,
且r[0].rc.key为MAXINT
(1)将r[0]和r[1]构成一个循环链表
(2)将r[2]到r[n]依次插入循环链表;key:49 38 65 97 76 13 27 49;表插入排序只得到一个有序链表,只能进行顺序查找,不能随机查找和折半查找。
要进行折半查找,则需要重排记录:顺序扫描有序链表,将第i个结???移至数组的第i个分量中。
设SlinkListType SL;
第i个最小关键字的下标为p,
(p的初值为r[0].next, 要求pi,否则依next继续找p,因为前i-1个数的位置已调整好)
q=r[p].next;
互换r[p]和r[i]; r[i].next=p;;;void Arrange(SlinkListType SL)
{ //根据静态链表SL中各结点的指针调整记录位置,
//使SL中的记录按关键字非递减有序顺序排列
p=SL.r[0].next;
//p指示第一个记录的当前位置
for(i=1;iSL.length;++i)
//SL.r[1..i-1]中记录已按关键字有序排列
//第i个记录在SL中的当前位置应不小于i
{
while(pi)
p=SL.r[
您可能关注的文档
- 第十一章高层建筑案例.ppt
- 第十一章高分子回收利用案例.ppt
- 第十一章海洋资源案例.ppt
- 第十一章混凝土结构按《公路桥规》的设计原理案例.ppt
- 第十一章联轴器案例.ppt
- 第十一章临床实验室的设计案例.ppt
- 第十一章螺纹刀具案例.ppt
- 第十一章排便护理案例.ppt
- 第十一章其他信号设备案例.ppt
- 第十一章祛风湿药案例.ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)