求主元素
2015-11-02 10:34
274 查看
问题描述:有一个整数数列,数列中元素出现次数超过一半的元素定义为主元素,设计一分治算法,求出主元素。
输入:整数的个数n以及n个整数
输出:如果有主元素,输出主元素以及它们所在的位置;如果没有主元素,输出-1.
考研数据结构题:
输入:整数的个数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 ;//输入动态数组 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 ;//输入动态数组 for(int i=0;i<n;i++) { cin>>a[i]; } int c=Major(a,n); printf("%d\n",c); } return 0; }
相关文章推荐
- LeetCode68——Text Justification
- [Python开发] python使用nltk进行Chart Parsing
- MySQL安装失败问题解决
- 九宫格计算按钮frame的代码
- vector
- winform登录代码
- hdu 5532 Almost Sorted Array(LIS)
- ndroid提供了Animation,在Android SDK介绍了2种Animation模式:
- 广播
- 全球域名商解析新增保有量18强:5家中国域名商上榜
- dispatcherservlet详解
- Essential Studio Enterprise Edition 2015 v3正式发布[附下载]
- iOS播放音乐,毛玻璃效果,播放gif图,
- 速冻熟食制品的QS的申请办法
- img元素高度多出来的几像素
- iOS7上TableViewCell的button和UIImageView个别未显示的bug
- 认识HTTP
- 服务之远程服务
- Java 内存分配
- jquery append appendTo before after insertAfter insertBefore prepend prependTo用法区别