- 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[
您可能关注的文档
最近下载
- 湖南省新高考教学教研(长郡二十校)联盟2024-2025学年高三上学期第一次预热演练物理试卷(含答案).pdf VIP
- 2025年长沙民政职业技术学院单招职业倾向性测试题库精选.docx VIP
- 2012款13东风本田艾力绅ELYSION_汽车使用手册用户操作图解驾驶指南车主车辆说明书电子版.pdf
- 专题01:考纲词汇01-高考英语3500词精背精练(含答案).docx
- 脑卒中后抑郁课件篇.ppt
- 2025年1月浙江首考高考英语试卷真题完整版(含答案+听力原文).pdf
- 2024年四川省成都市武侯区中考语文二诊试卷.doc
- 2025年四川省绵阳市中考二模英语试题.pdf VIP
- 《资治通鉴》【全译本】.pdf
- 公路养护工技师考试试题1.doc
文档评论(0)