※yuzuの噗噗酱. 2023-09-17 19:36 采纳率: 0%
浏览 149
已结题

给定一组无序整数序列,每次只能交换相邻的两个元素,求最少交换几次才能使序列递增有序

给定一组无序整数序列,每次只能交换相邻的两个元素,求最少交换几次才能使序列递增有序。 输入格式:输入包含几个测试用例。每个测试用例均以包含单个整数 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;
    }
    

    img

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月11日
  • 创建了问题 9月17日