C++ 统计每个数前面比它大的数字个数算法详解
这是一个统计每个数前面有多少比它大的数字的问题。我们可以使用一个数组来记录每个数前面的比它大的数字个数。
具体的算法如下:
- 读入数列的长度N。
- 创建一个长度为N的数组count,用来记录每个数前面的比它大的数字个数。
- 读入数列的每个数字,同时更新count数组。
- 输出count数组的每个元素。
下面是一个示例的C++代码实现:
#include <iostream>
using namespace std;
const int MAX_N = 1000;
int main() {
int N;
int count[MAX_N];
cin >> N;
for (int i = 0; i < N; i++) {
cin >> count[i];
}
for (int i = 0; i < N; i++) {
int num = count[i];
int cnt = 0;
for (int j = 0; j < i; j++) {
if (count[j] > num) {
cnt++;
}
}
cout << cnt << " ";
}
return 0;
}
该代码的时间复杂度为O(N^2),对于数据范围在1到1000的情况,效率是可以接受的。如果需要更高效的算法,可以考虑使用一些排序算法或者数据结构来优化。
原文地址: https://www.cveoy.top/t/topic/qr6Z 著作权归作者所有。请勿转载和采集!