#define COUNT 1000000
int main(void)
{
inta[COUNT] = {0};
for (int i = 0; i < COUNT; i++) {
int number = arc4random()%COUNT;//把随机数作为下标,值作为出现次数
a[number - 1] ++;
}
//输出重复的数字以及重复次数
for(int i = 0 ;i < COUNT;i++){
if (a[i] > 1) {
printf("%d repeats %d times\n",i+1,a[i]);
}
}
return0;
}
这种效率比较高,有的人用类似冒泡排序的方法,理论上可以实现,但是CPU的运算速度达不到,程序会一直卡在那里 |
|