求主元素
来源:互联网 发布:知乎live可以回看吗 编辑:程序博客网 时间:2024/05/22 17:04
问题描述:有一个整数数列,数列中元素出现次数超过一半的元素定义为主元素,设计一分治算法,求出主元素。
输入:整数的个数n以及n个整数
输入:整数的个数n以及n个整数
输出:如果有主元素,输出主元素以及它们所在的位置;如果没有主元素,输出-1.
考研数据结构题:
#include <iostream>using namespace std;int searchMain(int A[],int n){int i;int c=A[0],count=1;for(i=1;i<n;i++){if(A[i]==c){count++;}else{if(count>0){count--;}else{c=A[i];count=1;}}}if(count>0){for(i=count=0;i<n;i++){if(A[i]==c){count++;}}}if(count>n/2){return c;}else{return -1;}}#define LEN(arr) sizeof(arr)/sizeof(arr[0])int main(int argc,char* argv[]){int count; cin>>count; while (count--) { int n;cin>>n;//int a[]={0,5,5,7,5,5,3,6,5,3,3,3,3,3,3,3,3,3,3,8};int *a=new int[n];//输入动态数组for(int i=0;i<n;i++){cin>>a[i];}int c=searchMain(a,n);printf("%d\n",c);}return 0;}
#include <iostream>using namespace std;int searchMain(int A[],int n){int i;int c=A[0],count=1;for(i=1;i<n;i++){if(A[i]==c){count++;}else{if(count>0){count--;}else{c=A[i];count=1;}}}if(count>0){for(i=count=0;i<n;i++){if(A[i]==c){count++;}}}if(count>n/2){return c;}else{return -1;}}//计数排序int Major(int A[],int n){int i,*p,max;p=(int*)malloc(sizeof(int)*n);for(i=0;i<n;i++){p[i]=0;}max=0;for(i=0;i<n;i++){p[A[i]]++;if(p[A[i]]>p[max]){max=A[i];}}if(p[max]>n/2){return max;}else{return -1;}}#define LEN(arr) sizeof(arr)/sizeof(arr[0])int main(int argc,char* argv[]){int count; cin>>count; while (count--) { int n;cin>>n;//int a[]={0,5,5,7,5,5,3,6,5,3,3,3,3,3,3,3,3,3,3,8};int *a=new int[n];//输入动态数组for(int i=0;i<n;i++){cin>>a[i];}int c=Major(a,n);printf("%d\n",c);}return 0;}
0 0
- 求主元素
- 求主元素
- 求数组的主元素
- 求矩阵的外围元素之和,主对角线元素之和以及副对角线元素之和
- 求数组元素地址
- 求数组元素个数
- 计算方法列主元素消去法求线性方程组的解
- FORTRAN 函数子程序 求二维数组主对角元素和
- zoj 2132 求一个数组的主元素
- 关于求矩阵主对角线元素之和及副对角线元素之和的问题
- 求数组所有元素之和
- 求K个最小元素
- 求数组的主要元素
- 求数组元素的乘积
- 求栈的最小元素
- 求数组中元素个数
- 求队列中元素个数
- 求数组元素最大差值
- Mybatis循环map的一些技巧
- numpy——nonzero
- 关于vcard通讯录格式解析
- ios应用:release与debug编译方式的区别
- 九宫格计算按钮frame的代码
- 求主元素
- OpenMP多线程编程实验
- iOS之CocoaPods使用
- MSTest or TRX to HTML with Animated Charts
- Tomcat中文乱码问题的原理和解决方法
- mac终端打开出现问题:[forkpty: Resource temporarily unavailable]
- [Python开发] python使用nltk进行Chart Parsing
- hdu 5533 Dancing Stars on Me(水)
- 【鸟哥的linux私房菜-学习笔记】sed 工具