查找和排序算法应用.ppt

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

基本排序算法 插入排序 基本思想:每次将一个待排序的记录,按关键字大小插入到前面已经排好序的子文件的适当位置,直到全部记录插入完成为止。 冒泡排序 基本思想:依次比较相邻两个数,将大的数放在后面,小的数放在前面。首先比较第一个数和第二个数,然后比较第二个数和第三个数,如此继续,直到比较最后两个数。 快速排序 基本思想:通过一次分割,将无序序列分成两部分,其中前一部分的元素均不大于后一部分的元素值。然后,对每一部分利用同样的方法进行分割,这个过程一直做到每一个子序列的长度小于某个值m为止。 基本查找算法 顺序查找 基本思想:从表中第一个记录开始,逐个进行记录的关键字和给定值的比较,若两个值相等,查找成功。 折半查找 基本思想:对于有序集合,将n个元素分成个数大致相同的两半儿,取a[n/2]与欲查找的key作比较,如果key=[n/2]则找到x,算法终止;如果key<a[n/2],则只要在数组a的左半部分继续搜索x(这里假定数组元素已经升序排好);如果key>a[n/2],则只要在数组a的右半部分继续搜索x。 应用一:字符串计数问题 题目描述 给出m个字符串,要求输出重复n次的字符串有几个。 输入:先给定一个N,N≤100000,接着输入N个字符串 5 BBA BBA BEA DEC CCF 输出:对于每组测试数据,输出若干行,每行两个正整数,第一个数表示重复的次数,第二个数表示在此重复次数下有几种不同的字符串。 Case 1: 1 3 2 1 解题思路 对这N个字符串进行排序,然后依次统计。 Qsort函数:/view/982231.htm 函数形式: Qsort(que,n,sizeof(que[0]),cmp) 其中,que表示的是需要排序的序列的首地址,n表示序列中的元素,sizeof求的是该序列中单个元素所占的空间大小,cmp是排序过程中的比较函数。 应用二:寻找副本问题 题目描述 德克萨斯州的一个小镇被外星人攻击(假设这个小镇没有同卵双胞胎)。外星人绑架了当地人并把他们带到飞船里。外星人克隆了一些受害者并且将多个克隆人放回小镇。 现在发现有6个人,即原来的一个人和五个副本都是Mr. Hugh。美国联邦调查局命令你负责确定每个人被复制了多少份。 为了完成任务,联邦调查局收集每个人的DNA样本。 同副本和原来的人具有相同的DNA序列,不同的人有不同的DNA序列。 输入/输出 输入:含有多组数据,每一组以一行n m开始,表示共有n个人(1≤n≤20000),其中DNA序列长度为m (1≤n≤20)。 接下来的n行为DNA序列,每行包括m个字符,字符为”A”、”C”、”G”、”T”。 输入以n=m=0结尾。 9 6 AAAAAA ACACAC GTTTTG ACACAC GTTTTG ACACAC ACACAC TCCCCC TCCCCC 0 0 解题思路 首先,对某一个序列,找到所有和它相同的序列,标记,记录个数;然后,在剩下没有标记的序列中任找一个继续上面的操作。(这样的时间复杂度为n2) 为了降低时间复杂度,可以考虑先排序,将有差别和无差别排到一起,将时间复杂度降到n。 选择排序算法,平均时间复杂度最低的是快速排序。 算法思想:将一个无序的序列以某一个元素为界限分成两部分,使得该元素左边的元素都比该元素小,右边的都比该元素大,这样再在两个小部分中进行快速排序,直到左右两边分别只剩下一个元素为止,问题解决。 思考题 硬木是一种宽叶林木,生产水果或坚果,而且在冬天冬眠。美国的温带气候生产出数百种的硬木森林,也就是有着某些共同的生物学特征的树木群。虽然橡木、枫木、樱桃木都是硬木树种类型,但是它们是不同的物种。所有的硬木树种占据了美国树木的40%。 另一方面,软木或针叶树的叶子呈针状,在美国广泛使用的软木包括雪松、冷杉、铁杉、松、红杉、云杉等。在家里,软木主要用做结构性木材和一些装饰。 利用卫星成像技术,自然资源部记录每一天中每一棵树木的目录。 要求你:计算出每个品种数目的数量。 结题思路 给你n棵树,可能含有m个种类。现在需要你统计某种树在所给树木中的比率,按字典顺序从小到大输出树的种类和比率。 输入/输出 输入 Red Alder Ash Aspen Basswood Beech Ash …… 输出 Ash 13.7931 Aspen 3.4483 Basswood 3.4483 Beech 3.4483 …… 应用三:油田合并问题 题目描述 某石油公司发现了一个油田。该油田是由n×m个单元组成的矩形,有些单元油田里有石油,有些单元则没有。 单元油田可以上或下、左或右连通。 在一个单元油田里架设一台采油机,可以把和该单元油田相连的单元油田的石油采完。 该公司想知道需要架设多少台采油机才能把所

文档评论(0)

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

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

1亿VIP精品文档

相关文档