- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 1.顺序查找 顺序查找适用于线性表。其基本方法是: 从线性表中第一个元素开始,依次将线性表中元素与给定值进行比较。 若相等,则查找成功; 若直到最后一个元素,还没找到与给定值相等的元素,则查找失败。 * 顺序查找算法简单,但执行效率较低,特别是当表较大时,不宜采用此种查找算法。但在下列两种情况下,只能使用顺序查找算法: ⑴ 线性表是线性链表。 ⑵ 线性表是顺序表,但表中元素无序排列。 * 2.二分查找法 二分查找法又称折半查找,要求被查找的表采用顺序存储结构且数据元素按数据值升序或降序排列,即二分查找法只适用于有序表。 * 设顺序表是按升序排列,二分查找法的基本思想是: 首先将给定值与中间位置元素比较,若相等,则查找成功;若给定值小于元素值,则继续对前半部分进行折半查找;若给定值大于中间位置元素值,则继续对后半部分进行折半查找。 * 第一次查找 mid=6 66 71 80 86 88 101 7 8 9 10 11 12 第二次查找 mid=9 66 71 例:在有序顺序表(8,15,23,37,46,63,66,71,80,86,88,101)中,用折半查找法查找值为71的数据元素。 key=71 8 15 23 37 46 63 66 71 80 86 88 101 1 2 3 4 5 6 7 8 9 10 11 12 第三次查找 mid=7 71 第四次查找 mid=8 8 查找成功 * 6.4.2 排序算法 排序是将一组无序数据按值递增(或递减)进行重新排列。 交换排序、选择排序和插入排序是3类基本排序方法。 待排序数据序列可以是顺序存储或链式存储结构。 下面排序算法中,待排序数据序列均采用顺序存储结构。 * 1.交换排序法 在排序过程中,通过数据元素之间不断地进行比较与交换,最终达到排序目的。冒泡排序法是典型的交换排序法之一 冒泡排序法的基本思想是:对所有相邻元素进行比较,若逆顺,则将其交换,最终达到有序化。 * 交换排序法 原序列: 42 23 16 47 11 45 13 49 42 23 16 47 11 45 13 49 第1 遍 第2遍 第3遍 第4遍 第5遍 第6遍 23 16 42 11 45 47 13 49 16 23 11 42 45 13 47 49 16 23 11 42 45 13 47 49 11 23 16 13 45 42 47 49 11 13 16 23 45 42 47 49 * 选择排序是指每次从待排序数据序列中,选择出最小元素并定位到待(升序)排序序列最前面。简单选择排序法的基本思想是: 首先扫描整个序列,从中选出最小元素,将它交换到最前面; 然后再从剩余子序列中,选出最小元素,交换到子序列最前面。 依次类推,直到子序列长度为1为止。 * 原序列: 42 23 16 27 11 45 13 49 选择排序法 第1遍选择 42 23 16 27 11 45 13 49 11 23 16 27 42 45 13 49 第2遍选择 11 13 16 27 42 45 23 49 第3遍选择 11 13 16 27 42 45 23 49 第4遍选择 11 13 16 23 42 45 27 49 第5遍选择 11 13 16 23 27 45 42 49 第6遍选择 11 13 16 23 27 42 45 49 第7遍选择 * 插入排序是不断地将待排序的元素插入到前面有序序列中,直至所有元素都进入有序序列。 简单插入排序又称直接插入排序,是典型的插入排序法。基本思想是: * 将由n个元素组成的序列分成前后两个子序列,前者为有序序列,后者为无序序列。 一开始将待排序序列中第一个元素作为有序序列,将第二个元素插入到有序序列中,形成由两个元素组成的有序序列。 再将第三个元素插入到有序序列中。依此类推
文档评论(0)