- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.5 查找和排序 1.5.1 查找 一. 查找的概念 查找又称检索,它是数据处理中使用频繁的一种重要操作。 ?查找表(search table) ?被查找的数据对象是由同一类型的数据元素(或记录)构成的集合, ?查找表是一种非常灵活的数据结构。 ?给查找带来不便,影响查找的效率。 ?折半查找算法 int binsearch(int data[], int x) {/*在表中查找关键字值等于x的元素,若找到,则函数值为该元素在表中的位置,若没有找到,则函数值为0*/ int low,mid,hig; low=0; hig=last; while (low=hig) { mid = (low+hig)/2; //确定中间位置 if(data[mid]= = x) return mid +1; [例1-12] 假设有五个元素构成的数组,其排序码依次为:50, 20, 40, 75, 35。 2. 折半插入排序 二.交换排序 ?交换排序的基本思想 两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 ?交换排序基本思想的主要排序方法冒泡 排序和快速排序。 1. 冒泡排序 ?工作量的分析 最坏的情况下, 对size大小的表冒泡排序要作size - 1次大循环, 内循环的平均次数是size/2, 算法的复杂性是size(size-1)/2。 19 13 05 27 01 26 31 16 02 09 11 21 2. 快速排序 快速排序又叫作分区交换排序,是目前已知的平均速度较快的一种排序方法,它是对冒泡排序方法的一种改进。 ?快速排序方法的基本思想 从待排序的n个数据元素中任意选取一个元素Ri(通常选取无序序列中的第一个元素)作标准,调整序中各个元素的位置,使排在Ri前面的元素的排码都小于Ri.key,排在Ri后面的元素的排序码都大于Ri.key。通常把这样的一个过程称作一次快速排序。 ?第二趟排序 第二趟排序是在无序的{K2,K3,…,Kn}中选出最小的元素,将它与K2交换; ?第i趟排序 而第i趟排序时{K1,K2,…,Ki-1}已排好序,在当前无序的{Ki,…,Kn}中再选出最小的元素,将它与Ki元素交换,使{K1,K2,…,Ki}成为有序。因为每趟排序都使有序区增加了一个数据元素,且有序区中的数据元素的排序码均不大于无序区中元素的排序码,所以经过n-1趟排序后,整个数据元素序列就递增有序。 讲课内容、方法、步骤 3. 希尔排序 直接插入排序算法较简单。当n值较小时,效率比较高,在n值很大时,若序列按关键字基本有序,效率依然较高,其时间效率可以提高到O(n)。希尔排序从这两点出发,给出插入排序的改进方法。希尔排序又称缩小增量排序,是1959年出D.L.Shell提出来的。 ?希尔排序的基本思想 希尔排序的基本思想是:先选取一个小于n的整数di(称之为步长),然后把排序表中的n个记录分为di个组。从第一个记录开始,间隔为di的记录为同一组,各组内进行直接插入排序。一趟之后,间隔di的记录有序,随着有序性的改善,减小步长di,重复进行,直到di=1,使得间隔为1的记录有序,也就是整体达到有序。步长为1时就是直接插入排序。 分块查找又称索引顺序查找。当一组数据元素关键字具有下述的特点时:若把所有n个数据元素分成m块,第一块中任意元素的关键字都小于第二块中任意元素的关键字,第二块中任意元素的关键字都小于第三块中的任意元素的关键字…,第m-1块中的任一元素的关键字都小于第m块中任意元素的关键字,而每一块中元素的关键字不一定是有序的。 因此,分块查找分两步进行,即先使用折半查找算法确定待查记录所在的块,然后在块中使用顺序查找算法查找所需的记录。例如,在图1-66所示的存储结构中,查找关键字等于给定值k=24的结点,因为索引表小,不妨用顺序查找方法查找索引表。即首先将k依次和索引表个各关键字比较,直到找到第一个关键字大于等于k的结点,由于k48,所以,关键字为24的结点若存在的话,则必定在第二个子块中;然后由同一索引项中的指针指示第二个子表中第一个记录是表中第6个记录,则自第6个记录起进行顺序查找,直到R[10].key=24为止。若此子表中没有关键字值等于k的记录,即自第6个记录起至第11个记录的关键字和k比较都不相等,则查找不成功。 讲课内容、方法、步骤 1.5.1 查找 一. 查找的概念 查找又称检索,它是数据处理中使用频繁的一种重要
您可能关注的文档
- 软件工程基础 教学课件 作者 陆惠恩 第11章.ppt
- 软件工程基础 教学课件 作者 陆惠恩 第12章.ppt
- 软件工程基础教程 教学课件 作者 郭庚麒 主编 余明艳 杨丽 副主编 9 软件测试.ppt
- 软件工程基础教程(第二版) 教学课件 作者 方志刚 主编 张银南 副主编 第11章.ppt
- 软件工程基础与实例分析 教学课件 作者 王阿川 第01章 软件工程基础概述.ppt
- 软件工程基础与实例分析 教学课件 作者 王阿川 第02章 可行性分析.ppt
- 软件工程基础与实例分析 教学课件 作者 王阿川 第03章 需求分析.ppt
- 软件工程基础与实例分析 教学课件 作者 王阿川 第04章 结构设计.ppt
- 软件工程基础与实例分析 教学课件 作者 王阿川 第05章 详细设计.ppt
- 软件工程基础与实例分析 教学课件 作者 王阿川 第06章 编码.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)2-1.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)2-2.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)2-3.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)2-4.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)2-5.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)2-6.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-1.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-2.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-3.ppt
- 软件技术基础 教学课件 作者 张选芳 傅茂洺 王欣 计算机软件技术基础(邮电)3-4.ppt
最近下载
- T∕CACM 1066.2-2018 中医治未病标准化工作指南 第2部分:标准体系.docx VIP
- 技术服务措施及保障措施方案.docx VIP
- 新媒体环境下的微博营销【文献综述】.doc VIP
- 2021钻床工考试-初级钻床工考试(精选试题).doc VIP
- 化工企业双重预防机制.pdf VIP
- (铁总计统〔2017〕177号 )中国铁路总公司关于进一步加强铁路建设项目征地拆迁工作和费用管理的指导意见.pdf VIP
- 深圳新桥街道万丰社区大朗山片区城市更新项目.pdf
- 中小学劳动教育课程如何创新与实施.docx VIP
- 大航海时代OL陆战技巧学习指南.docx
- 集中式山地光伏电站方阵区直流电缆敷设技术要求.pdf VIP
文档评论(0)