排序问题题解大合集
算法1
只要前一项比这一项大,b[a[i]]++
,我们在累计它的值,最终结果就是最小交换次数
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int a[1001],b[1001],n,c;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++)
if(a[j]>a[i])b[a[i]]++;
c+=b[a[i]];
}
for(int i=1;i<=n;i++)cout<<b[i]<<' ';
puts("");
cout<<c;
}
这么早就刷题,大佬啊
QwQ
因为马上要上网课555