推荐使用冒泡排序
```cpp
#include<iostream>
using namespace std;
int main(){
int n,a[10010],ans=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(a[i]>a[j]){
ans++;
}
}
}
cout<<ans;
return 0;
}
```
[AC记录](https://www.luogu.com.cn/record/94181411)
by xrxtcl @ 2022-11-15 22:53:06
@[Fortnight](/user/279846) 我用的选择排序
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[1100],n,b=0,t=0;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n-1;i++){
for(int k=i+1;k<=n;k++){
if(a[i]>a[k]){
t=a[i];
a[i]=a[k];
a[k]=t;
b++;
}
}
}
cout<<b;
return 0;
}
```
by _lzy_ @ 2022-11-15 22:54:30
@[Fortnight](/user/279846) 这是我的归并排序
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[500005],k[500005],ans;
void in(ll &s){
char c = getchar();
while(c < '0' || c > '9') c = getchar();
for(s = 0;c >= '0' && c <= '9';c = getchar())
s = s * 10 + c - '0';
}
void msort(ll l,ll r){
if(l == r) return;
ll mid = (l+r)>>1;
msort(l,mid);msort(mid+1,r);
ll zl = l,zr = mid+1,cnt = 0;
while(zl <= mid && zr <= r){
if(a[zl] > a[zr]){
ans += mid-zl+1;
k[++cnt] = a[zr++];
}
else k[++cnt] = a[zl++];
}
while(zl <= mid) k[++cnt] = a[zl++];
while(zr <= r) k[++cnt] = a[zr++];
for(ll i = 1;i <= cnt;i++){
a[l+i-1] = k[i];
}
}
int main(){
in(n);
for(ll i = 1;i <= n;i++)
in(a[i]);
msort(1,n);
cout << ans;
return 0;
}
```
by flying_man @ 2022-11-15 23:13:53