第七章 排 序;排序:将文件中一组记录(或数据)按其关键字的值以递增(或递减)的次序重新进行排列的操作过程。;排序的对象: 文件;关键字:;排序的分类;内排序的分类:;排序的性能比较:;7.2、插入排序;7.2.1 直接插入排序; 初始: [49] 38 65 97 76 13 27 49
i=1: [38 49] 65 97 76 13 27 49
i=2: [38 49 65] 97 76 13 27 49
i=3: [38 49 65 97] 76 13 27 49
i=4: [38 49 65 76 97] 13 27 49
i=5: [13 38 49 65 76 97] 27 49
i=6: [13 27 38 49 65 76 97] 49
i=7: [13 27 38 49 49 65 76 97]
稳定排序 ;7.2.1 直接插入排序;7.2.1 直接插入排序;具体算法如下:;算法性能分析;空间的开销:只需要一个记录的辅助空间
S(n)= O(1); 由于插入排序的基本操作是在有序表中进行查找,而查找的过程是可以用折半查找来实现的。由此实现的排序称为二分法插入排序。;(1) 13 27 38 49 65 76 97 49
left=0 mid=3 right=6
(2) 13 27 38 49 65 76 97 49
left=4 mid=5 right=6
(3) 13 27 38 49 65 76 97 49
left=4 mid=4 right=4
∵ 49’65 ∴ right=mid-1=3
left=4right ∴ 已找到插入位置left=4
(4) 13 27 38 49 49 65 76 97
;void binSort(SortObject * pvector)
{
int i, j, left, mid, right;
RecordNode temp;?
for( i = 1; i pvector-n; i++ )
{
temp = pvector-record[i];
left = 0; right = i – 1; /* 置已排序区间的下、上界初值 */
while (left = right)
{
mid=(left+right)/2; /* mid指向已排序区间的中间位置 */
if (temp.keypvector-record[mid].key)
right=mid-1; /* 插入元素应在左子区间 */
else
left=mid+1; /* 插入元素应在右子区间 */
}
for(j=i-1; j=left; j--)
pvector-record[j+1] = pvector-record[j];
/* 将排序码大于ki的记录后移 */
if(left!=i) pvector-record[left] = temp;
}
} ;算法分析:
空间效率:同直接插入排序
时间效率:仅减少了比较次数,移动记录次数不变。
n
?? log2i ? ? n?log2n
i=1
最坏的情况为n2/2,最好的情况为2n,???均移动次数为O(n2)
;7.2.3 表插入排序;类型声明如下:
struct Node;
typedef struct Node ListNode;
struct Node
{ KeyType key;
DataType info;
ListNode *next;
};
typedef ListNode * LinkList;;void listSort(LinkList * plist)
{
ListNode *now, *pre, *p, *q, *head;?
head=*plist;
if(head-next==NULL ||head-next-
您可能关注的文档
- 万通奇迹知识讲解.ppt
- 万万用表、电流表,示波器的读数和使用教材课程.ppt
- 万献初先生鸿门宴讲义说课材料.ppt
- 万象新都地产啤酒文化节活动策划方案教学教材.ppt
- 万以内比较数的大小的方法幻灯片课件.ppt
- 万用表、电流表的读数和使用上课讲义.ppt
- 万用表的分类于宝水知识讲解.ppt
- 万有引力定律11复习课程.ppt
- 万有引力定律的两种应用教学文案.ppt
- 万有引力定律教学课件说课讲解.ppt
- 安徽省安庆市潜山市部分学校2025-2026学年七年级下学期阶段学情自测数学试题-普通用卷.docx
- 2026《微型无人机的设计基础综述》2600字.docx
- 安徽六安市金安区2025-2026学年八年级上学期2月期末物理试题-普通用卷.docx
- 2026《五菱汽车公司经营者股权激励实施成效及其启示》9700字.doc
- 北京市第一零九中学2026届高三下学期开学考试数学试题-普通用卷.docx
- 北京海淀实验中学2026届高三下学期数学开学检测试题-普通用卷.docx
- 2026《五菱汽车公司融资模式及融资风险分析》8700字.doc
- 2026《五菱汽车公司物流成本控制研究》文献综述开题报告(含提纲)3800字.doc
- 2026《五菱汽车公司薪酬改革问题研究》开题报告(文献综述)4200字.doc
- 2026《物流企业反内卷的战略转型研究—以顺丰控股为例》13000字.doc
最近下载
- 儿科学(第10版)儿童心肺复苏.pptx VIP
- 《第1课 身边的算法》说课稿教学反思-2023-2024学年小学信息技术浙教版2023五年级上册.docx VIP
- 2025-2026学年浙美版(新教材)小学美术三年级下册(全册)教学设计.docx
- 2025-2026年演出经纪人之演出市场政策与法律法规模拟题库及答案下载.pdf VIP
- 幼儿园教师春季卫生保健知识培训.pptx VIP
- 高速公路旧沥青路面铣刨料再生利用:技术、效益与前景.docx VIP
- 2025-2026学年浙美版(新教材)小学美术三年级下册《运动会奖杯设计》教学设计.docx VIP
- 2024 - 2025人教版(PEP)英语小学二年级下册教学计划 .docx VIP
- 2026年XX施工安全免责协议书.docx VIP
- DLT5300-2013 1000kV 架空输电线路工程施工质量检验及评定规程.docx VIP
原创力文档

文档评论(0)