- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
查找运算应用广泛。 查找效率直接影响数据处理速度。 查找方法与数据结构有关。 采用何种查找方法,取决于使用哪种数据结构表示“表” 查找速度 占用存储空间多少 算法本身复杂程度 平均查找长度ASL(Average Search Length) 为确定记录在表中的位置,需和给定值进行比较的关键字的个数的数学期望值叫查找算法的ASL。 1. 设表长为n,low、high和mid分别指向待查元素所在区间的上界、下界和中点,k为给定值。2.初始时,令low=1,high=n,mid=?(low+high)/2? 让k与mid指向的记录比较 若k==r[mid].key,查找成功 若kr[mid].key,则high=mid-1 若kr[mid].key,则low=mid+13.重复上述操作,直至lowhigh时,查找失败。 折半查找算法思想 在 n50 时,可得近似结果 查找过程:将表分成几块,块内无序,块间有序;先确定待查记录所在块,再在块内查找。 适用条件:分块有序表 算法实现: 用数组存放待查记录,每个数据元素至少含有关键字域; 建立索引表,每个索引表结点含有最大关键字域和指向本块第一个结点的指针。 分块查找方法评价 二叉排序树的插入算法 根据动态查找表的定义,“插入”操作在查找不成功时才进行; 若二叉排序树为空树,则新插入的结点为新的根结点;否则,新插入的结点必为一个新的叶子结点,其插入位置由查找过程得到。 一个无序序列可以通过构造一棵二叉排序树而变成一个有序序列。 每次插入的新结点都是二叉排序树上新的叶子结点 插入时不必移动其它结点,仅需修改某个结点的指针 哈希查找(散列查找) 利用哈希函数进行查找的过程。 基本思想:在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查元素的查找方法。 在记录的关键字与记录的存储地址之间建立的一种对应关系。哈希函数是一种映象,是从关键字空间到存储地址空间的一种映象。 addr(ai)=H(ki) 其中:ai是表中的一个元素 addr(ai)是ai的存储地址 ki是ai的关键字 从例子可见: 哈希函数只是一种映象,所以哈希函数的设定很灵活,只要使任何关键字的哈希函数值都落在表长允许的范围之内即可。 由于哈希函数是一个压缩映象,因此,在一般情况下,很容易产生“冲突”现象。 冲突:key1?key2,但H(key1)=H(key2)的现象 一般来说,只能尽量减少冲突而不能完全避免冲突,这是因为通常关键字集合比较大,其元素包括所有可能的关键字,而地址集合的元素仅为哈希表中的地址值。 如上例中城市和地区的可能出现值不下几百几千,而地址集合的大小只有26,所以哈希函数是一个压缩映象,就不可避免产生冲突。 很难找到一个不产生冲突的哈希函数。一般情况下,只能选择恰当的哈希函数,使冲突尽可能少地产生。 在定义哈希表时既要定义好哈希函数又要给出处理冲突的方法。 建立公共溢出区 设哈希函数的值域为[0,m-1],则设向量HashTable[0..m-1]为基本表,每个分量存放一个记录。 另设立向量OverTable[0..v]为溢出表。所有关键字和基本表中关键字为同义词的记录,不管他们由哈希函数得到的哈希地址是什么,一旦发生冲突,都填入溢出表。 哈希查找过程 将关键字分割成若干部分,然后取它们的叠加和为哈希地址。 移位叠加:将分割后的几部分低位对齐相加。 间界叠加:从一端沿分割界来回折送,然后对齐相加 此法适于关键字的数字位数特别多。 折叠法 例 关键字为 :0442205864,哈希地址位数为4 5 8 6 4 4 2 2 0 0 4 1 0 0 8 8 H(key)=0088 移位叠加 5 8 6 4 0 2 2 4 0 4 6 0 9 2 H(key)=6092 间界叠加 2.7.6 哈希表技术及其查找 除留余数法 设定哈希函数为: H(key) = key MOD p ( p≤m ) 其中, m为表长,p 为不大于 m 的素数或是不含 20 以下的质因子。 2.7.6 哈希表技术及其查找 例如: 给定一组关键字为:12, 39, 18, 24, 33, 21, 若取 p=9, 则他们对应的哈希函数值将为: 3, 3, 0, 6, 6, 3 可见,若 p 中含质因子 3, 则所有含质因子 3 的关键字均映射到“3 的倍数”的地址上
您可能关注的文档
- 收敛观测示例附件.doc
- 收视率调查的流程与方法.ppt
- 数字地面模型实习.doc
- 手机操作系统分类.doc
- 手机常见卖场故障排除.ppt
- 手机内存卡辨别.doc
- 手机上网设置详解.doc
- 手机消费者偏好的差异.ppt
- 手机原理与常见故障排除(作业).ppt
- 守候平凡的良心话题作文精选.doc
- 最新手术操作分级目录.docx
- 2025山东济宁市泗水县事业单位招聘(卫生类)38人模拟试卷含答案详解(名师推荐).docx
- 现代市场营销案例教程12销售营销经管营销专业资料.ppt
- 最新围手术期患者护理流程.docx
- 2025年中国漆包锰铜线数据监测报告.docx
- 2025山东济宁市泗水县事业单位招聘(卫生类)38人模拟试卷含答案详解(b卷).docx
- 2025山东济宁市泗水县事业单位招聘(卫生类)38人模拟试卷及答案详解(考点梳理).docx
- 案例王永庆卖米的故事.ppt
- 2025山东济宁市泗水县事业单位招聘(卫生类)38人模拟试卷含答案详解ab卷.docx
- 2025山东济宁市泗水县事业单位招聘(卫生类)38人模拟试卷及答案详解(有一套).docx
文档评论(0)