我的思路是这样的:
1、对着2n个整数由小到大排列,并求平均值 aver;
2、在平均值左右一步一个的移动取数;每加入一个数计算一次已取数的平均值,若平均值大于aver左侧移动一步取数,
小于aver在右侧移动一步取数;直到取够n个数。(若某侧数已经取全,则在另一侧取数);
3、若平均值aver左侧数被取全;则直接输出结果;结束!
若平均值aver右侧数被取全;
①求所选数的均值aver1;若aver1<aver;或者aver1=aver;直接输出结果;结束!
4、若两侧均未被取全;
求所选数的均值aver1;若aver1>aver;计算|aver1-aver|*n;取将选取的n个数中与没选取的n个数之差ai-aj
最接近(aver1-aver)*n;用aj替换ai计算平均值aver2;若|aver1-aver|>|aver2-aver1|,将ai利用aj替换,重复该
步骤;否则输出结果,结束!