寻找多数元素 算法
来源:互联网 发布:淘宝txt下载 编辑:程序博客网 时间:2024/05/10 09:42
定义:
整型数组a[1...n],如果整数x在数组a中出现的次数多于半数,则x称为多数元素
应用概念:
观察结论5.1:在原序列中去除两个不同的元素后,那么在原序列中的多数元素在新序列中还是多数元素。
例1: 1,2,2,3,2,2,3 显然2是多数元素
去除1,2,在2,3,2,2,3中2仍是多数元素
去除1,3,在2,3,2,2,3中2更是多数元素
例2: 1,3,2,3,2,2,3 显然没有多数元素
去除1,3,在2,3,2,2,3中2成了多数
测试代码:
#include <stdio.h> int candidate(int a[], int m, int n){int j = m, c = a[m], count = 1;while (j < n && count > 0){++ j;if (a[j] == c)++ count;else-- count;}if (j == n)return c;elsereturn candidate(a, j+1, n);};// a[1...n]int Majority(int a[], int n){int c = candidate(a, 1, 10);int count = 0;int majority;for (int i = 1; i <= n; ++ i)if (a[i] == c)++ count;if (n%2 == 0)majority = n/2 + 1;elsemajority = n/2;if (count > majority)return c;elsereturn -1;}; int main(){int a[11];for (int i = 1; i < 11; ++ i)scanf("%d",a+i);printf("%d\n",Majority(a, 10));getchar();getchar();}
- 寻找多数元素 算法
- 算法 寻找多数元素
- 【算法分析】寻找多数元素
- p99 寻找多数元素
- 寻找多数元素
- 寻找多数元素
- 寻找多数元素
- 寻找多数元素
- 算法之道---寻找多数元素算法(Java)
- 寻找多数元素(Majority)
- 寻找多数元素/主元素问题
- 寻找多数元素(主元素)
- 004-寻找多数元素-归纳法-《算法设计技巧与分析》M.H.A学习笔记
- 169. Majority Element (寻找多数元素)
- 寻找多数元素的递归和迭代版本
- 寻找主元素(高效算法)
- 算法:寻找第K小元素
- 小算法----寻找插入元素的位置
- ssh mysql命令大全
- 生物信息_Blast比对_blast
- WP7 上传文件
- int类型 实现1到100的阶乘
- 轻松理解—继承成员访问控制机制
- 寻找多数元素 算法
- php表单转换textarea换行符
- CentOS 5.5虚拟机安装Oracle11gR2的全过程
- Linux进程通信总结(四) --消息队列
- FTP服务器端软件Serv-U教程
- s3c6410的存储器映射
- 代码的执行时间
- 卸载开机登陆界面中的gnome classic
- 运行tomcat7w.exe tomcat7.exe ,提示 指定的服务未安装 unable to open the service 'tomcat7'