算法 直接按取得等号来解
时间复杂度 $O(n/2)$
C++ 代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100010;
int a[N];
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
sort(a,a+n);//排序
int res=0;
for(int i=0,j=n-1;i<j;i++,j--) res+=a[j]-a[i];//直接用取等号结果也可以
//奇数的时候等于,相减是0可以不减
printf("%d",res);
return 0;
}
复杂度是O(nlogn)哦
确实,忘记算排序了