《数据结构(C#语言描述)》第07章查找.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Company LOGO 第7章 查找 《数据结构(C#语言描述)》配套PPT 引入 《数据结构(C#语言描述)》配套PPT 查找是计算机应用中最常用的操作之一,也是许多程序中最耗时间的一部分。因而,查找方法的优劣对系统的运行效率影响极大。本章讨论各种查找算法,并通过对它们的分析来比较各种查找方法的优劣。 7.1 查找的基本概念 《数据结构(C#语言描述)》配套PPT 查找和查找表 1 查找是指在数据元素集合中查找满足某种条件的数据元素的过程。例如在学生成绩表中查找某一学生的成绩;在字典中查找某个字等等。 用于查找的数据元素集合就称为查找表,查找表由同一类型的数据元素组成。 7.1 查找的基本概念 《数据结构(C#语言描述)》配套PPT 关键字是数据元素中某个数据项。 能惟一标识数据元素的关键字称为主关键字。 不能惟一标识数据元素的关键字称为次关键字。 关键字、主关键字、次关键字 2 7.1 查找的基本概念 《数据结构(C#语言描述)》配套PPT 静态查找和动态查找 3 若在查找的同时对表做修改运算(如插入和删除),则称这类查找为动态查找,否则为静态查找。 静态查找在查找过程中查找表本身不发生变化,而动态查找在查找过程中查找表可能会发生变化。 7.1 查找的基本概念 《数据结构(C#语言描述)》配套PPT 若整个查找过程全部在内存中进行,则称为内查找; 若在查找过程中还需要访问外存,则称为外查找。 内查找和外查找 4 7.5 顺序查找 《数据结构(C#语言描述)》配套PPT 顺序查找又称线性查找(Sequential Search),是一种最简单、最基本的静态查找方法。其基本思想是:从表的一端开始,顺序扫描整个线性表,依次将扫描到的结点关键字与给定值K进行比较,若当前扫描到的结点关键字与K相等,则查找成功;若扫描结束后,仍未找到关键字值等于K的结点,则查找失败。 7.5 顺序查找 《数据结构(C#语言描述)》配套PPT 顺序查找所用时间跟查找关键字K在表中的位置有关。 顺序表查找的时间复杂度为O(n)。 顺序查找的优点是算法简单,且对表的结构无任何要求,无论是用顺序表还是用链表存放记录,也无论记录之间是否按关键字有序存放,它同样适用。顺序查找的缺点是查找效率低,因此当在较大规模数据中进行查找时,不宜采用顺序查找。 7.3 二分查找 《数据结构(C#语言描述)》配套PPT 二分查找又称折半查找(Binary Search),是一种效率较高的静态查找方法。二分查找要求查找表用顺序存储结构存放,且各数据元素按关键字有序(升序或降序)排列,并且要求查找表使用线性表的顺序存储结构。也就是说,二分查找只适用于对有序顺序表进行查找。 7.3 二分查找 《数据结构(C#语言描述)》配套PPT 7.3.1 二分查找的基本原理 0 1 2 3 4 5 6 7 8 9 2 8 10 13 21 36 51 57 62 69 low high mid 2 8 10 13 21 查找关键字为51的数据元素 57 62 69 low=0,high=9,mid=(0+9)/2=4 low=5,high=9 ,mid=(5+9)/2=7 ,mid=(5+6)/2=5 low=5,high=6 low=6,high=6 ,mid=(6+6)/2=6 36 7.3 二分查找 《数据结构(C#语言描述)》配套PPT 7.3.1 二分查找的算法实现 【例7-1 Demo7-1.cs】使用循环实现二分查找 7.3 二分查找 《数据结构(C#语言描述)》配套PPT 7.3.2 二分查找的算法实现 二分查找可用一棵称为判定树的二叉树来描述,判定树中的每一结点对应表中的一个元素,但结点的值不是关键字的值,而是元素在表中的位置。 二分查找的算法复杂度为O(log2n),也就是说在有10000条记录的有序查找表中,平均只需查找14次就可找到指定元素。 4 1 0 2 3 7 5 8 9 6 7.3 二分查找 《数据结构(C#语言描述)》配套PPT 7.3.3 Array.BinarySearch方法 C#的数组内置了二分查找方法——Array.BianrySearch,它是一个静态方法。显然,在调用这个方法之前,必须确保作为参数的查找表内的关键字已经按顺序排列,否则就需要先行调用Array.Sort()方法给查找表排序后再调用Array.BianrySearch()进行查找。 7.3 二分查找 《数据结构(C#语言描述)》配套PPT 7.3.4 剖析System.Collections.SortedList 在C#中,System.Collections.SortedList和System.Collections.Generic.SortedListTKey, T

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档