给定一组无序整数序列,每次只能交换相邻的两个元素,求最少交换几次才能使序列递增有序。 输入格式:输入包含几个测试用例。每个测试用例均以包含单个整数 n <500000(输入序列的长度)的一行开头,接下来是 n 个以单个空格分隔的整数(0≤整数值≤999999999)。输入以 n =0结束,不必处理此序列。 输出格式:对于每个测试用例,输出一行包含整数 op , op 是对给定输入序列进行排序 所需的最小交换操作数。 输入样例:5 91054 3 123 0输出样例: 6 0,求完整代码,可运行那种
2条回答 默认 最新
- threenewbee 2023-09-17 20:24关注
#include <iostream> using namespace std; int main() { int n, cnt = 0; cin >> n; int arr[n]; for (int i = 0; i < n; i++) cin >> arr[i]; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { cnt++; int t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } } cout << cnt; return 0; }
解决 无用评论 打赏 举报