4265:冒泡排序

时间限制:1 S   /  内存限制:65536 KB
AC:15   /  Submit:216
问题描述

冒泡排序每趟都会执行这样一段代码:

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

相关

TKK-ICPC Round#18


Copyright 2016 - 2024 XUJC ACM Team
闽ICP备2020022076号-1