- 1、本文档共300页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全套课件完整版课件正本书课件最全课件全套ppt完整版ppt整本书ppt全套电子讲义全套电子教案全套电子课件完整版电子讲义完整版电子教案
* 1、直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 基本思想:在插入第 i(i>1)个记录时,前面的 i-1个记录已经排好序。 13.2 排序 * 有序序列elem[0..i-1] elem[i] 无序序列 elem[i..n-1] 一趟直接插入排序的基本思想: 有序序列elem[0..i] 无序序列elem[i+1..n-1] 13.2 排序 * 实现“一趟插入排序”可分三步进行: 3.将elem[i] 插入(复制)到elem[j+1]的位置上。 2.将elem[j+1..i-1]中的所有记录均后移 一个位置; 1.在elem[0..i-1]中查找elem[i]的插入位置, elem[0..j] ? elem[i] elem[j+1..i-1] ; 13.2 排序 * (1)如何构造初始的有序序列? (2)如何查找待插入记录的插入位置? 需解决的关键问题? 13.2 排序 * elem 0 1 2 3 4 5 21 18 25 22 10 25* 21 21 25 i = 1 18 22 10 25* 25 i = 2 18 22 10 25* 25 22 21 25 21 15 10 25* 25 21 15 10 25* 25 21 18 15 10 18 10 25* i = 3 18 i = 5 18 25* i = 4 13.2 排序 * 解决方法: 将第1个记录看成是初始有序表,然后从第2个记录起依次插入到这个有序表中,直到将第n个记录插入。 关键问题(1)如何构造初始的有序序列? 算法描述: for (i=1; in; i++) { 插入第i个记录,即第i趟直接插入排序; } 13.2 排序 * 关键问题(2)如何查找待插入记录的插入位置? 解决方法: 在i个记录的有序区elem[0] ~ elem[i-1]中插入记录elem[i],首先顺序查找elem[i]的正确插入位置,然后将elem[i]插入到相应位置。 算法描述: for(j=i-1; j=0 eelem[j]; j--) { elem[j+1]=elem[j]; } 13.2 排序 * 49 38 65 97 76 13 27 i=1 (38 49 ) 65 97 76 13 27 i=2 (38 49 65 ) 97 76 13 27 i=3 (38 49 65 97 ) 76 13 27 i=4 (38 49 65 76 97 ) 13 27 i=5 (13 38 49 65 76 97 ) 27 i=0 ( ) i=6 (13 38 49 65 76 97 ) 27 j j j j j j 97 76 65 49 38 27 (13 27 38 49 65 76 97) 结果: 0 1 2 3 4 5 6 13.2 排序 * void StraightInsertSort(ElemType elem[], int n) // 操作结果:对数组elem作直接插入排序序 { for ( int i = 1; i n; i++) { // 第i趟直接插入排序 ElemType e = elem[i]; // 暂存elem[i] int j; // 临时变量 for (j = i - 1; j = 0 e elem[j]; j--) { // 将比e大的计录都后移 elem[j + 1] = elem[j]; // 后移 } elem[j + 1] = e; // j+1为插入位置 } } 13.2 排序 */58 【定义】:由n(n≧0)个数据元素(结点)a1,a2, …an组成的有限序列。其中数据元素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n0)记作: (a1,a2, ... ... , an) 线性表的定义 ( Linear List ) 例1、26个英文字母组成的字母表 (A,B,C ,... ... , Z)
您可能关注的文档
- CAXA 2013电子图板完整版课件全套ppt教学教程 最全电子讲义(最新).ppt
- C程序设计概述完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新).ppt
- C语言程序设计教程完整版课件全套PPT教学教程电子讲义电子教案(最新).ppt
- C语言程序设计完整版课件全套ppt教学教程电子讲义电子教案(最新).ppt
- C语言及程序设计概述完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新).ppt
- C语言及应用完整版课件.ppt
- c语言设计完整版课件全套ppt教学教程最全整套电子讲义幻灯片(最新).pptx
- C语言完整版课件全套ppt教学教程最全整套电子讲义幻灯片(最新).ppt
- 2024年秋季新北师大版8年级上册物理全册教学课件.pptx
- 2025年春新人教版历史7年级下册全册教学课件.pptx
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
最近下载
- 国家烟草公司招聘考试真题.pdf
- 【精品班会】高中主题班会课件:纪律教育主题班会课件(共38张PPT).ppt
- 2024年春学期人教版初中数学九年级下册教学计划和教学进度表.pdf
- 美容院店务经营诊断表.doc
- Python程序设计课件:初识Python程序设计语言.pptx VIP
- 第十八届“地球小博士”全国地理知识科普竞赛题库(附答案).pdf VIP
- 2024年陆军特色医学中心(大坪医院)人员招聘备考题库及答案解析.docx
- 《Python程序设计》教学课件01初识Python.pptx VIP
- 2025年中国农产品贸易行业市场全景评估及投资潜力预测报告.docx
- 预应力混凝土空心桩力学性能、承载力特征值计算表、锤击沉桩锤重选择表、闭口桩尖构造.docx VIP
文档评论(0)