将一列数从小到大排序,并输出重复最多的数以及其次数。每个数是都大于等于零且小于等于2000 的整数。
时间: 2024-11-18 21:27:03 浏览: 23
要解决这个问题,你可以采用以下步骤:
1. 使用一种排序算法(例如冒泡排序、插入排序或归并排序等),将输入的一列整数从小到大排列。
2. 创建两个变量,一个用于存储出现次数最多的数字(初始化为第一个数,计数为1),另一个用于存储次多出现的数字及其计数(初始值设为None,表示尚未找到)。
3. 遍历排序后的数组,对于每一个元素,检查它是否等于当前最大数或次最多数。如果是,则更新相应的计数;如果不是,则比较当前计数和次最多数的计数,如果当前计数更大则替换次最多数及其计数。
4. 遍历结束后,最大数及其出现次数和次多数及其出现次数就是你要找的答案。
下面是一个简单的Python示例:
```python
def find_most_common(nums):
nums.sort() # 排序数组
max_num = nums[0]
max_count = 1
second_max = None
second_max_count = 0
for num in nums[1:]:
if num == max_num:
max_count += 1
elif second_max is None or max_count > second_max_count:
second_max = num
second_max_count = max_count
else:
second_max_count += 1
return max_num, max_count, second_max, second_max_count
# 示例输入
numbers = [100, 200, 100, 300, 200, 200, 150]
max_val, max_freq, second_max, second_freq = find_most_common(numbers)
print(f"重复最多的数是 {max_val},出现了 {max_freq} 次;其次的数是 {second_max},出现了 {second_freq} 次.")
```
运行这段代码会得到结果,比如对于给定的例子,输出可能是 "重复最多的数是 200,出现了 3 次;其次的数是 100,出现了 2 次."。
阅读全文