#include<iostream>
#include<cstdio>
using namespace std;
int i j'n;int x[101],y[101];
int main()
cin>>n;
for(i=l;i<=n;i++)cin>>x[i]
for(i=1;i<=n-l;i++)
for (j=i+1;j<=n;j++)
if( x[i]>x[j])y[j]++;
else if(x[i]<x[j])y[i]++;
for(i=l;i<=n;i++)
printf("85d ",y[i]);
cout<<endl;
return 0;
把第13 行与第15行互换位置,结果不会改变
第14行把if( x[i]<x[j])删掉效果一样
第11行把i+1改成1,数组y每个元素的值增加1倍
数组 y[i]中存的是x[i]在数列中从大到小的次序
此程序的时间复杂度是
0(logz n)
O(n logz n)
0(n*2)
0(n)
此程序如果n输人4,然后输人2413,输出结果是
1234
203 1
4 3 2 1
1302
发表评论