算法设计与分析之众数和重数
分治策略:众数和重数
问题描述
给定含有n个元素的多重集合S,每个元素在S中的次数称为该元素的重数。多重集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。众数为2,其重数为3。
任务:对于给定的由n个自然数组成的多重数集S,编程计算S的众数及其重数。
问题分析
将第一个数作为轴值,对序列进行分割,得到两个子序列(不包括轴值),并统计出现次数cout
如果cout大于分割得到的两个子序列的长度,则该值即为众数;
如果左序列的长度大于count,则众数可能出现在左子序列中;
如果右序列的长度大于count,则众数可能出现在右子序列中;
代码
#include <iostream>
using namespace std;
struct mdata{int data;int count;
};void msort(int a[], int s, int e, mdata &result){ int left,right,middle,count=1;left=s;right=e;middle=(s+e)/2; int temp=a[left];while(left<right){while(a[right]>=temp){if(a[right]==temp) count++;right--;}if(left<right) a[left]=a[right];while(a[left]<temp){if(a[left]==temp) count++;left++;}if(left<right) a[left]=a[right];}a[right]=temp;if(count>result.count){result.count=count; result.data=temp; }if(right-s>result.count) msort(a,s,right-1, result);if(e-right>result.count) msort(a,right+1,e,result);return ;
}int main()
{mdata result={0,0};int a[10]={2,1,3,2,5,2,3,3,3,3};msort(a,0,9,result);cout<<result.data<<" "<<result.count<<endl;return 0;
}
算法设计与分析之众数和重数相关推荐
- 【算法设计与分析】经典常考三十三道例题AC代码
❥小虾目前大三,我校在大一下开设<数据结构>这门课,大二上开了<算法设计与分析>这门课,很庆幸这两门课的上机考试总成绩一门100,一门99,最后总分也都90+.下文会给出机试的 ...
- 算法设计与分析课后总结
算法设计与分析课后总结 算法设计与分析 第1章 算法设计基础 课后习题 第二章算法分析基础 课后习题 1.考虑下面算法,回答下列问题,算法完成什么功能?算法的基本语句时什么?基本语句执行了多少次? 2 ...
- 算法设计与分析课程的时间空间复杂度
算法设计与分析课程的时间空间复杂度: 总结 算法 时间复杂度 空间复杂度 说明 Hanoi $ O(2^n) $ $ O(n) $ 递归使用 会场安排问题 \(O(nlogn)\) \(O(n)\) ...
- 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...
- PHP第五周答案,算法设计与分析第五周作业——Word Ladder
算法设计与分析第五周作业--Word Ladder 上周找了一道深度搜索优先搜索的算法题来做,于是这周就选了一道广度优先搜索算法题来试试手. 本周所选题目:原题目链接 题目详情 题目大意:给出一个字符 ...
- 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...
<太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...
- 算法设计与分析——算法思想总结
算法设计与分析 1.分治法 分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同.递归的解这些子问题,然后将各子问题的解合并得到原问题的解. 分治法所能解 ...
- 算法设计与分析——递归与分治策略——全排列
算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...
- 计算机算法设计与分析考试题,《计算机算法设计与分析》习题及答案
<计算机算法设计与分析>习题及答案 一.选择题 1.二分搜索算法是利用( A )实现的算法. A.分治策略 B.动态规划法 C.贪心法 D.回溯法 2.下列不是动态规划算法基本步骤的是( ...
最新文章
- 雷军做程序员时写的博客,太牛了!
- java script简介
- 医用计算机基础学习心得,计算机基础学习心得.doc
- mysql日常问题记录
- IBM携手三菱东京日联银行 将区块链用于合同管理
- 《Python》 字典
- php超小免杀大马_PHP免杀大马的奇淫技巧
- 集成运算放大器对输入级的要求
- 搭建 IPv6 Web服务器
- CSS 分析倒三角|侧三角|正三角的实现
- 22个免费的UI界面设计工具、资源及网站
- 计算机音乐创作心得,理结与悠的作曲入门讲座(心得篇 3-4)
- SQL Server阻塞与锁
- Github连接不上怎么办?
- 首家共享充电宝倒闭了,王思聪要赌赢了吗?
- 脱了裤子放屁之std::string
- windows server + documents4j 转excel报错 Could not access target file
- SpringBoot集成jsoup多线程爬取美剧天堂全部电影资源
- POI解析文档内容(txt,doc,docx,xls,xlsx,ppt,pdf)
- java设计日历实验报告_JAVA小日历组件-JAVA2课程设计(报告+程序)【提供下载】...