问题描述 |
---|
冒泡排序每趟都会执行这样一段代码: for (int i = 1; i < n; i++) { if (a[i] > a[i + 1]) { swap(a[i], a[i + 1]); } } 那么在至多 n - 1 趟后,数组就会变得有序。 现在给你一个数组,请问至少需要执行多少次以上代码,数组才会变得有序。 |
输入描述 |
第一行是一个正整数 T 表示测试案例的数量。 每组案例先是一个正整数 n 表示数组的长度。 接下来 n 个正整数分别表示数组中的每个元素。 测试用例1&2:T 组案例的 n 之和不超过 1000,元素最大不超过 100。 测试用例3&4:T 组案例的 n 之和不超过 1000,元素最大不超过 1e9。 测试用例5&6:T 组案例的 n 之和不超过 2e5,元素最大不超过 100。 测试用例7&8:T 组案例的 n 之和不超过 2e5,元素最大不超过 1e9。 |
输出描述 |
针对每组案例,输出至少需要执行多少次以上代码,数组才会变得有序,然后换行。 |
样例输入复制样例 |
2 5 1 2 3 4 5 4 4 3 2 1 |
样例输出 |
0 3 |
相关 |