#include <iostream>
using namespace std;
int main() {
int a[] = {5, 2, 8, 1, 9, 3};
int n = 6, cnt = 0;
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
if (a[i] > a[j]) cnt++;
cout << cnt << endl;
return 0;
}
- (1) 程序输出结果是______。(4 分)
- (2) 该程序实际统计的是数组中的______(填"逆序对"或"顺序对")个数。(4 分)
- (3) 若数组已按从小到大排好序,该程序输出______。(5 分)
答案解析
(1)逆序对逐对计数:对 (5,2)(5,1)(5,3)=3,(2,1)=1,(8,1)(8,3)=2,(9,3)=1,合计 7。(2)逆序对。(3)已升序则不存在 a[i]>a[j],输出 0。