《可视化计算》第5章排序与查找(B).ppt
《《可视化计算》第5章排序与查找(B).ppt》由会员分享,可在线阅读,更多相关《《可视化计算》第5章排序与查找(B).ppt(32页珍藏版)》请在三一办公上搜索。
1、第5章 排序与查找PART B,可视化计算,查找,查找算法和排序算法有密切的联系,因为许多查找算法依赖于要查找的数据集的有序程度基本的查找算法有以下4种:顺序查找;比较查找也称二分查找;基数查找也称分块查找;哈希查找,2,顺序查找,顺序查找过程:通常从表中的第一个(或最后一个)记录开始,将记录的关键字与给定值逐个进行比较当某个记录的关键字与给定值相等时,即找到所查的记录,查找成功;反之,若查到最后一个记录,其关键字和给定值的比较都不相等,则表明表中没有所查的记录,查找失败。,3,顺序查找的算法设计,由于顺序查找的数据表,无需将节点实现排序,所以可以直接使用随机数产生一张线形表,进行查找的实验,
2、4,二分查找,基本思想:将n个元素分成个数大致相同的两半,取an/2与欲查找的x作比较,如果x=an/2则找到x,算法终止如果xan/2,则需要在数组a的右半部继续搜索直至找到x为止或得出关键字不存在的结论算法实现的前提1.必须采用顺序存储结构 2.必须按关键字大小有序排列,5,6,二分查找的算法说明,子程序先将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表否则将继续查找后一子表重复以上过程,直至找到满足条件的记录,或者根本查不到子表,此时查找失败,7,二分查找的算法分析,
3、+折半查找法每执行一次,都可以将查找空间减少一半,是计算机科学中分治思想的完美体现-其缺点是要求待查表为有序表,而有序表的特点则是插入删除困难因此,折半查找方法适用于不经常变动而查找频繁的有序列表,8,分块查找,使用扑克牌计算24点该算法是从数字为110的扑克牌中任意抽出四张,运用加、减、乘、除,在运算中可以引入括号,每张牌只能用一次,使其计算结果为24在广泛的社会实践的基础上可以分析和认识到:在一副牌(只保留数字点数的40张)中任意抽取4张,总共有715种不同组合形式,其中有149种组合的运算结果不可能为24,9,不可计算24的牌组(149个),10,不可计算的牌组如何确定?,计算搜索开始前
4、,先检查某个特定牌组的计算可能性呢?如果肯定得不到24的计算结果(例如,1,1,1,1和10,10,10,10),那么就可以马上重新发牌,开始新一轮计算可以使用查表的方式来解决!,11,问题,每次查阅这张表也不是一个简单的过程,因为该表列出的关键字是使用字符串实现的,尽管字符串也可以转换成数字进行排序,但显然会增加查找过程的计算工作量能否设计一个算法,不用转换关键值,又可以减少顺序查找的扫描工作量?可以考虑采用分块查找算法,该算法又称索引顺序查找,它是顺序查找的一种改进方法,12,分块查询的基本思想,将n个数据元素按块有序划分为m块(m n)每一块中的节点不必有序,但块与块之间必须按块有序;即
5、第1块中任一元素的关键字都必须小于第2块中任一元素的关键字;而第2块中任一元素又都必须小于第3块中的任一元素,,13,分块查找的实现,不可计算牌组保存在(以文本格式)文件中从文件读入后,产生一个索引数组保存各块的起始元素下标,14,分块算法设计的说明,主要子图Main:主流程控制;输入/输出Input_list_stringc:从文件读入149个牌组Indexing:建立分块索引表Random_number:产生测试牌组aSort:将测试牌组a排序Setsample:将测试牌组a转成测试字符串Block_search_test:进行分块查找,15,分块查询,Main子图,16,分块查询,主要数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化计算 可视化 计算 排序 查找
链接地址:https://www.31ppt.com/p-6526692.html