有一个数组r,里面是n个随机排列整数,找到里面的众数,如果该众数的重数大于n/2,则该数为这个数组的主元素
如果按照众数的计算方法,需要先给数组排序。然后再遍历每个元素,得到众数和重数,再来判断重数与n/2的关系。以下为排完序之后找众数的算法。
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
解法二:依次扫描所给数组的每个整数,将第一个遇到的整数N保存到C中,记录N出现的次数为1;若遇到下一个整数任为N,则计数加1,否则,计数减1;计数为0时,将下次遇到的数保存到C,计数重新记为1,开始新一轮的计数;直到数组的数扫描完为止。C即为众数。重新扫描C在数组中出现的次数,判断是否满足要求。