第11章 查找.pdf

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 查找

第11章查找 主要知识点 查找的基本概念 静态查找表 动态查找表 哈希表 查找的基本概念 查找:查询某个关键字是否在(数据元素集合)表中的过程。也称 作检索。 查找表: 由同一类型的数据元素(或记录)构成的集合。 主关键字: 能够惟一区分各个不同数据元素的关键字 次关键字: 通常不能惟一区分各个不同数据元素的关键字 查找成功: 在数据元素集合中找到了要查找的数据元素 查找不成功:在数据元素集合中没有找到要查找的数据元素 静态查找: 只查找,不改变数据元素集合内的数据元素 动态查找: 既查找,又改变(增减)集合内的数据元素 静态查找表: 静态查找时构造的存储结构 动态查找表: 动态查找时构造的存储结构 定义要查找数据元素的结构体为: typedef struct { KeyType key; } DataType; 平均查找长度:查找过程所需进行的关键字比较次数的 平均值,是衡量查找算法效率的最主要标准,其数学定义 为: n ASL P C × ∑ i i i 1 其中,P 是要查找数据元素出现的概率,C 是查找相应 i i 数据元素的比较次数。 静态查找表 静态查找表主要有三种结构: 顺序表(数据元素存放没有任何要求) 有序顺序表 (数据元素的存放按照递增或递减) 索引顺序表(块间有序,块内无序) 顺序表 基本思想: 从顺序表的一端开始,用给定数据元素的关键字逐个和顺序 表中各数据元素的关键字比较,若在顺序表中查找到要查找 的数据元素,则查找成功,函数返回该数据元素在顺序表中 的位置;否则查找失败,函数返回-1。 int SeqSearch(DataType a[], int n, KeyType key) //在a[0]--a[n-1]中顺序查找关键码为key的数据元素 //查找成功时返回该元素的下标序号;失败时返回-1 { int i = 0; while(i n a[i].key != key) i++; if(a[i].key == key) return i; else return -1; } 算法分析 查找成功时的平均查找长度ASL成功为: n n 1 ASL P C + (i 1n) / 2 ∑ 成功 ∑ i i i 1 i 1 n 有序顺序表 有序顺序表上的查找算法主要有顺序查找和折 半查找两种方法。 1、顺序查找 有序顺序表上的顺序查找算法和顺序表上的查找算法方法 类同。 2、二分查找 (又称折半查找) 算法的基本思想:先给数据排序 (例如按升序排好),形

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档