#算法# 递归法找多元素
来源:互联网 发布:淘宝买岛国资源搜什么 编辑:程序博客网 时间:2024/05/21 15:06
找寻一组数中出现次数最多的数
- 定义:数组a[n],整数x在数组a中出现的次数>(n/2),x即为多元素。
- 算法思路:1.次数大于n/2,每次去掉2个数仍可满足。2.有选择性的统计出现次数
寻找出现次数大于n/2的数
三大要素:数组、查找位置、n
1.参数:Count //重复+1,不重复-1 Data[n] //数据存储的地方 locate //寻数位置2.思路: //初始化 Count =1; temp =Data[1]; //执行 从Data[2]开始向后扫描,for i=2 to n if(Data[i]==temp) Count++; if(Data[i]!=temp) Count--; if(Count==0),对Data[i+1..n]再次寻找出现次数大于剩下数的一半的数 3.算法uint32_t Candidate(uint32_t *Data, int locate, int n){ uint32_t temp = Data[locate]; int i,count = 1; for(i = locate+1;i < n && count >0; i++){ if(Data[i] == temp) count++; else count--; } if(i == n) return temp; else return Candidate(Data, i+1, n);}
在这个算法中有一个重要的隐含的意思,由于找寻的是超过一半的数,那么在count记为0时,拿掉之前的数,剩下的数据中超过一半的数即是整体数中超过一半的数。
判断寻找到的数是否符合要求
int Majority(uint32_t *Data, int n){ uint32_t temp= Candidate(Data, 1, n); int i,count; for(i=1; i<=n; i++){ if(Data[i] == temp) count++; if(count > n/2) return temp; else return -1; }}
阅读全文
0 0
- #算法# 递归法找多元素
- PHP使用非递归方式实现猴子找大王算法
- 2109找女朋友(快排递归算法与非递归算法)
- 多元非线性回归问题算法
- 7.3 多元线性回归算法
- 递归(找规律、找出口)
- 动态规划算法求解找硬币问题的递归与非递归实现
- 【matlab 多元回归】matlab数值预测--多元回归算法
- 寻找多元素
- Vue多元素过渡
- Vue多元素过渡
- CSS 多元素选择器
- 多元函数微分法
- 找零钱递归实现
- 找零钱递归实现
- 找数-递归
- hrbust2186找规律递归
- 常用算法 --- 递归法
- 老司机和驾驶辅助系统相处得如何?MIT研究人员做了个科学研究
- svn--1.概述
- 史上最壕无人车买家诞生!泥潭中的Uber要搞个超大的无人出租车队
- Oracle数据库迁移
- JDBC连接MySQL数据库
- #算法# 递归法找多元素
- Guava LoadingCache使用记录
- 为什么经理、总监多是空降, 而不是从内部提拔?
- 多线程下载 断点续传
- C++启动其它exe程序的代码
- java并发编程实战:对象的共享笔记
- 求一个整数的平方根
- PDF里面复制出来的文章,在word里去掉回车符
- tcpdump