该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
冒泡计数器升级版(Bubble Plus)
题目背景
杨乐多发现:冒泡排序之所以 稳定 ,是因为它只在 时才交换,因此相等元素的相对顺序不会改变。
当序列里出现重复值时,最终的有序序列其实是 稳定升序 (相同数字按原出现顺序排列)。
杨乐多想研究一个更贴近真实冒泡排序的问题:优化冒泡排序会在第几轮停止?
题目描述
给定一个长度为 的整数序列 (这里不保证是排列,允许重复)。
运行如下 优化冒泡排序(下标从 开始):
for i = 1..n:
swapped = false
for j = 1..n-i:
if a[j] > a[j+1]:
swap(a[j], a[j+1])
swapped = true
if swapped == false:
print(i)
break
请输出程序最终打印的数字(也就是外层循环执行到第几轮停止)。
输入格式
- 第一行一个整数 。
- 第二行 个整数 。
输出格式
输出一个整数,表示优化冒泡排序停止时的轮数。
输入输出样例
样例输入 1
3
2 1 1
样例输出 1
2
样例解释 1
稳定升序结果为 。
- 第 轮会发生交换并得到 。
- 第 轮无交换,输出 。
样例输入 2
5
3 3 2 2 1
样例输出 2
5
数据范围与提示
对于 的数据,保证 。
| 测试点编号 | ||
|---|---|---|
京公网安备11010802045784号