网站大量收购独家精品文档,联系QQ:2885784924

C++程序设计与数据结构基础:第11章 查找和排序.ppt

C++程序设计与数据结构基础:第11章 查找和排序.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三部分 数据结构基础 第十 章 查找和排序 本章内容 查找 顺序查找 二分查找 排序 直接插入排序 直接选择排序 冒泡排序 * §11.1 查找 查找的基本概念 查找(检索):在数据元素集合中查找关键字与给定值相等的数据元素。 关键字:数据元素中的一个或多个数据项值,它可以唯一标识一个数据元素。 平均查找长度(ASL): n为查找表的长度;pi为查找第i个元素的概率,在等概率情况下pi等于1/n; Ci为找到第i个元素时的比较次数 * 顺序查找 查找表必须采用线性表。用给定值依次与线性表中每个元素的关键字进行比较。如果某个元素的关键字与给定值相同,则查找成功;如果找遍全表也没有发现满足条件的元素,则查找失败。 ASL约为表长度的一半,效率较低。 * 二分查找 三个条件 必须是线性表; 必须以顺序方式存储; 必须有序 优点: 查找效率高 缺点: 18 24 29 31 35 47 56 63 * §11.2 排序 排序的基本概念 排序:将文件中的记录按排序码非递减(或非递增)的顺序重新排列。 排序码:数据元素中的一个或多个数据项。排序码可以是关键字,也可以是其他若干数据项的组合。 排序算法的稳定性:如果在待排序的元素序列中,存在着多个排序码相同的元素,按照某种排序算法排序后,这些元素的相对位置仍保持不变,则称该排序算法是稳定的,否则就是不稳定的。 * 插入排序 基本思想: 把元素ei(0in) 依次插入到由S中前i个元素组成的已经排好序的序列{e0, e1, …,ei-1}的适当位置上,插入后S的前i+1个元素仍为有序 所有元素分成两个集合:已排序记录集和待排序记录集。初始时,已排序记录集只有一个元素,即e0,待排序记录集是所有剩余元素。然后每次从待排序记录集中选取一个元素,找到其在已排序记录集中的位置,将其插入到该位置,直到待排序记录集为空。 * 直接插入排序 以顺序查找的办法找到要插入的元素在已排好序的元素序列中应处的位置。 直接插入排序是稳定的排序算法 34 40 75 20 50 { 50, 20, 75, 34, 40 } ASL:O(n2) * 选择排序 基本思想: 每次从待排序的元素序列中选择一个最小(大)的元素,插入到已经排好序的序列的后边 直接选择排序 用逐个比较的办法从待排序的元素序列中选出最小的元素。依次对i=0, 1, 2, … ,n-2分别执行如下的选择和交换步骤:在元素序列ei, ei+1, … , en-1中选择出最小的元素ek;当k≠i时,交换ei与ek的值。经上述n-1次的选择和交换后,排序工作即已完成。 { 50, 20, 75, 34, 40 } 20 50 75 34 40 20 34 75 50 40 20 34 40 75 50 20 34 40 50 75 * 交换排序 基本思想:消除逆序 冒泡排序 基本思想:从待排序记录集的一端(这里假定为低端)对相邻的两个元素(e0和e1,e1和e2,…,en-2和en-1)依次比较它们的排序码,若不符合排序的顺序要求,就将相应的两个元素互换,此过程称为一趟冒泡排序,最多经过n-1趟冒泡排序,排序工作即可完成。 最好情况下的时间复杂度为O(n)。最坏情况下的时间复杂度为O(n2)。 冒泡排序算法是稳定的。 * 97 27 58 13 49 65 76 待排序记录 27 97 58 13 49 65 76 27 58 97 13 49 65 76 27 58 13 97 49 65 76 27 58 13 49 97 65 76 27 58 13 49 65 97 76 27 58 13 49 65 76 97 27 58 13 49 65 76 97 待排序记录 27 58 13 49 65 76 97 27 58 13 49 65 76 97 27 13 58 49 65 76 97 27 13 49 58 65 76 97 27 13 49 58 65 76 97 27 13 49 58 65 76 97 27 13 49 58 65 76 97 27 13 49 58 65 76 97 13 27 49 58 65 76 97 * * * * * * * * *

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档