一个关于数组的算法

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/qq_20553613/article/details/80115142

题目:数组array中有若干个范围为1——100的整数,统计相同数字出现的次数。

分析:
1.数组中都为整数,范围在1——100,即最多有100种情况,也就是最多有100个计数变量。
2.假如题目改为:求整数10出现的个数,那么则好理解并实现。

int i,count = 0;
for(i = 0;i < n;i++)
{
    if(arry[i] = 10)
        count++;
}


3.对于100种出现的可能,那么可以定义一个有100个元素的数组,用数组元素下标对应数字,用数组元素的值就是对应数字出现的次数,这样就是典型的空间换算时间。

int i,count[100] = {0};
for(i = 0;i < n;i++)
{
    count[arry[i]-1]++;
}

假设题目中整数的范围是1——n呢?有什么好的算法?这个暂时还没想到,欢迎大家留言建议。

猜你喜欢

转载自blog.csdn.net/qq_20553613/article/details/80115142