- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2000年1月25日 北京化工学院信息基础教研室 算法设计方法 吴哲辉 崔焕庆 马炳先 吴振寰 编著 机械工业出版社 第3章 散列与凝聚算法 3.1 散列算法 散列是指把一组无序的数据散列到各个存储单元(存储区)中。散列并不要求把数据排序,然后按顺序存放这些数据,而是通过一个散列函数来把这些数据映射到各个存储单元(存储区)中。散列函数(Hash函数)可定义为:f : 数据集?存储区 一般地,要求f满足以下两个条件: (1) 计算速度快,即算法的时间复杂度低; (2) 没有冲突,或尽量减少冲突。 所谓冲突,是指数据集中存在两个数据ai和aj(aiaj )使得f(ai)=f(aj)。 冲突处理的方法主要有两种: (1) 设置另一个散列函数,对那些有冲突的数据再次散列; (2) 设置链表,把每一组互相冲突的数据存放在一个链表中。 3.1 散列算法 散列查找算法 散列查找要解决的问题可概括为:在一组杂乱的数据中查找某个(某些)数据。即设 ,要查找数据 等是否在A中。 3.1 散列算法 散列查找算法的设计思路可以用以下3个步骤来描述。 (1) 设计一个散列函数f, for (i=1; i=n; i++) 计算f(ai),并根据f(ai)的值把分配到相关单元; (2) 如果相关单元已存放有A中的另一个数据,则要进行冲突处理; (3) for (j=1; j=k; j++) { (3.1) 计算f(bj); (3.2) 根据f(bj)的值查找相关单元; (3.2.1)若相关单元中无数据,则输出“不在A中”; (3.2.2)若相关单元中有数据,则遍历链表,并逐个同比较, 若查找到等于的数据,则输出“在A中”;若遍历完链表没有找到等于的数据,则输出“不在A中”。 } 3.1 散列算法 1. 散列查找算法适用于查找多个数据的情况。 2. 散列查找算法的关键在于散列函数的设计。 3. 假设使用拉链式冲突处理方法。 3.1 散列算法 例3.1 设 为一个(无序的)数据集,要查找 中的各个数据是否在A中。 3.1 散列算法 桶排序算法 基本思想是把这组数据“散列”成若干“桶”,然后分别对各桶的数据进行排序。在这里,“散列”的含义有一定程度的变化,要求各个桶是按一定顺序排列的。假设待排序的数据为 ,其中n是一个很大的数值。如果已知 并且n个数据的数值比较均匀地分布在B0和B之间。那么把它们分为k组,然后对每个中的元素进行排序。 3.1 散列算法 例3.2 设 ,用分桶选择排序算法对A中的元素排序。 3.2 矩阵乘法的凝聚算法 凝聚算法的基本思想是把分散的、有规则排列(存放)的、计算过程中需要多次重复使用的一组数据凝聚成一个数,通过对单个数的计算来实现对这一组的多次重复计算,然后再把对单个数的计算结果散列成原问题需要求解的一组数据。 多项式求值的方法可以用作数据凝聚的手段。对于一组非负整数 ,设置一个n-1次多项式 如果把x选取为大于各个系数的一个正整数,那么Pn-1(x)的值同这一组数之间就存在一一对应关系。 3.2 矩阵乘法的凝聚算法 当两个矩阵A和B的元素aij和bij都是非负整数时,可以用多项式求值的方法把它们凝聚,即对非负整数矩阵A和B的乘法使用凝聚算法,见算法3.4。 当A和B都是任意整数(而不要求非负整数)矩阵时,可以把A和B分别分解为 3.2 矩阵乘法的凝聚算法 当A和B都是有理数矩阵时,记 求出qij和tij的最小公倍数g ,取 且: 用上面讨论过的方法计算两个矩阵的乘积,可得理数矩阵A和B的积矩阵。 3.2 矩阵乘法的凝聚算法 对凝聚算法进行改进的主要思路是只对其中一个矩阵的列或行进行凝聚。设A为一个m行n列非负整数矩阵,B为一个n行q列矩阵,要计算C=AB。当m=q时,只对矩阵A的各列元素进行凝聚,否则(即mq时),就只对B的各行的元素进行凝聚。这样,就只需要使用一个“变量”x,而x的取值不是很大,算法实现的难度可以大幅度降低。 3.2 矩阵乘法的凝聚算法 把凝聚算法应用于布尔矩阵的乘法,更能显示其优越性。因为布尔矩阵中的每个元素的值都是1或0,当使用多项式求值的方法来凝聚各列或各行中的元素时,“变量”x的取值可以更小。这样,计算或就同一般多项式求值问题的计算量相当。能够实现一般多项式求值算法的计算机,也可以实现布尔矩阵
您可能关注的文档
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第2章-移动通信信道特性.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第3章-移动通信组网技术.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第4章-数字移动通信系统.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第5章-数字移动电话机-1.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第5章-数字移动电话机-2.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第5章-数字移动电话机-3.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第6章 移动通信设备维修基础知识.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第7章-GSM和CDMA手机维修-1.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第7章-GSM和CDMA手机维修-2.ppt
- 移动通信设备原理与维修 第2版 作者 李延廷电子教案 第8章-移动通信设备维修基本技能训练.ppt
- 算法设计方法 作者 吴哲辉 第4章.ppt
- 算法设计方法 作者 吴哲辉 第5章.ppt
- 算法设计方法 作者 吴哲辉 第7章.ppt
- 算机财务管理-Excel篇 作者 朱庆须new1概述 FIS-1章.ppt
- 算机财务管理-Excel篇 作者 朱庆须new3章财务分析 FIS-3章.ppt
- 算机财务管理-Excel篇 作者 朱庆须new4章财务估价 FIS-4章.ppt
- 算机财务管理-Excel篇 作者 朱庆须new5章投资决策 FIS-5章.ppt
- 算机财务管理-Excel篇 作者 朱庆须new7日常运营 FIS-7章日常运营管理.ppt
- 算机财务管理-Excel篇 作者 朱庆须new8财务预测 FIS-8章 财务预测.ppt
- 算机财务管理-Excel篇 作者 朱庆须new9风险分析 FIS-9章 风险管理.ppt
文档评论(0)