- 22
- 0
- 约2.74千字
- 约 8页
- 2016-08-19 发布于湖北
- 举报
算法大作业
算法大作业——寻找多数元素
班级:0213051
学号:
(1)问题提出:
令A[1,2,…n]是一个整数序列,A中的整数a如果在A中出现的次数多于,那么a称为多数元素。例如在序列1,3,2,3,3,4,3中,3是多数元素,因为在7个元素中它出现了四次。有几个方法可以解决这个问题。蛮力方法是把每个元素和其他各个元素比较,并且对每个元素计数,如果某个元素的计数大于,就可以断定它是多数元素,否则在序列中就没有多数元素。但这样比较的次数是n(n-1)/2=Θ(),这种方法的代价太昂贵了。比较有效的算法是对这些元素进行排序,并且计算每个元素在序列中出现了多少次。这在最坏情况下的代价是Θ(n ).因为在最坏情况下,排序这一步需要Ω(n ) 。另外一种方法是寻找中间元素,就是第元素,因为多数元素在排序的序列中一定是中间元素。可以扫描这个序列来测试中间元素是否是多数元素。由于中间元素可以在Θ(n)时间内找到,这个方法要花费Θ(n)时间。
有一个漂亮的求解方法,它比较的次数要少得多,我们用归纳法导出这个算法,这个算法的实质是基于下面的观察结论。
观察结论:在原序列中去除两个不同的元素后,原序列的多数元素在新序列中还是多数元素。
这个结论支持下述寻找多数元素候选者的过程。将计数器置1,并令c=A[1]。从A[2]开始逐个扫描元素,如果被扫描的元素和c
您可能关注的文档
最近下载
- 第13课 循环结构(一)课件 浙教版(2023)信息科技五年级下册.pptx VIP
- 市场营销英语(广东外语外贸大学)中国大学MOOC慕课章节测验答案(课程ID:1002488009).pdf VIP
- 45商务智能原理与应用第二章——数据仓库.ppt VIP
- 2026年演出经纪人资格考试题库附完整答案.docx VIP
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读.docx VIP
- 迷你仓储2026年个人物品存储方案.pptx
- 土石方工程开挖施工方案.docx VIP
- 急性心肌梗死中西医结合诊疗指南(完整版).doc VIP
- YD_T 1970.6-2020 通信局(站)电源系统维护技术要求 第6部分:发电机组系统.docx VIP
- 水电站继电保护课件.ppt VIP
原创力文档

文档评论(0)