以下是用 C++编写的使用穷举法求逆序对个数的代码: ```cpp #include <iostream> // 计算逆序对个数的函数 int countInversions(int arr[], int n) { int count = 0; // 逆序对个数 for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (arr[i] > arr[j]) { count++; // 找到逆序对,个数加 1 } } } return count; } // 测试示例 int main() { int arr[] = {3, 1, 4, 5, 2}; int n = sizeof(arr) / sizeof(arr[0]); int invCount = countInversions(arr, n); std::cout << "逆序对个数: " << invCount << std::endl; return 0; } ``` 额外需要注意的逻辑点: 1. 循环的边界条件要确保准确,避免越界访问数组元素。 2. 对于较大规模的数组,穷举法的效率可能会很低,考虑优化算法。 3. 在比较数组元素大小时,要注意数据类型的范围和可能的溢出情况。 [2024-11-22 16:36:18 | AI写代码神器 | 308点数解答]