找出数组里面元素出现次数最多的问题
2013-04-12 22:55
507 查看
/*
问题:
在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。
设计一个算法,找出出现次数最多的数字。
*/
<代码示例>
#include<stdio.h>
void search(int a[],int len)
{
int i,index,max = 0;
int temp[1000] = {0}; //定义一个大小为1000个元素的数组,初值均设为0
for(i = 0; i < len; i++)
{
index = a[i] - 1;
temp[index]++; //哪个元素出现的最多,导致temp[index]值最大
}
for(i = 0; i < 1000; i++) //遍历整个数组,找出值最大的元素
{
if(max < temp[i])
{
max = temp[i];
}
}
for(i = 0; i < 1000; i++) //遍历整个数组,输出值最大元素的下标的值加1
{
if(max == temp[i])
{
printf("%d\n",i + 1); //即元素出现次数最多的
}
}
}
int main()
{
int array[ ] = {1,1,2,3,4,5,6,6,6,7,7,7,7,7,7};
search(array,sizeof(array)/sizeof(*array));
return 0;
}
运行结果为:
问题:
在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。
设计一个算法,找出出现次数最多的数字。
*/
<代码示例>
#include<stdio.h>
void search(int a[],int len)
{
int i,index,max = 0;
int temp[1000] = {0}; //定义一个大小为1000个元素的数组,初值均设为0
for(i = 0; i < len; i++)
{
index = a[i] - 1;
temp[index]++; //哪个元素出现的最多,导致temp[index]值最大
}
for(i = 0; i < 1000; i++) //遍历整个数组,找出值最大的元素
{
if(max < temp[i])
{
max = temp[i];
}
}
for(i = 0; i < 1000; i++) //遍历整个数组,输出值最大元素的下标的值加1
{
if(max == temp[i])
{
printf("%d\n",i + 1); //即元素出现次数最多的
}
}
}
int main()
{
int array[ ] = {1,1,2,3,4,5,6,6,6,7,7,7,7,7,7};
search(array,sizeof(array)/sizeof(*array));
return 0;
}
运行结果为:
![](http://img.my.csdn.net/uploads/201303/09/1362797688_5167.jpg)
相关文章推荐
- 找出数组里面元素出现次数最多的问题
- Python实用黑科技——找出序列里面出现次数最多的元素
- java找出一个数组中出现次数最多的那个元素
- java找出一个数组中出现次数最多的那个元素
- java找出一个数组中出现次数最多且最大的那个元素
- 主元素问题(判断数组是否出现主元素,O(n)时间内找出主元素,主元素出现次数)
- Majority Element 找出一个数组中出现次数最多的元素
- java 找出n个元素数组中重复次数最多的数(假设出现次数大于n/2)
- 找出数组中出现次数最多的前k个元素[leetcode题]
- 347. Top K Frequent Elements(找出数组中出现次数最多的前k个元素)
- java找出一个数组中出现次数最多的那个元素(用HashSet很新颖)
- 求一个数组中重复元素出现最多值,最大的元素及出现次数,次数相同时,取最大值,优先考虑次数
- O(lgn)时间内找出有序数组中某个元素出现的次数
- 字符串String=“adadfdfseffserfefsefseetsdg”,找出里面出现次数最多的字母和出现的次数.
- 1、在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。设计一个算法,找出出现次数最多的数字。
- 算法 n大小的数组中找出出现3/n次数以上的元素
- Java实现找出数组中重复次数最多的元素以及个数
- js 算出Array数组中出现次数最多的元素
- 找出数组中重复次数最多的元素并打印
- js统计一个字符串出现最多的字母(或者数组中出现次数最多的元素)