1 .将两个序列合并为一个序列,排序为序列Source
2 .取出最大元素Big、第二大元素Small
3 .用剩下的序列S[:-2]等分,得到序列max、min
4 .在max序列中加入Small,Big增大为min序列,重新计算新序列之和,大的为max,小的为min。
efmean(sorted_list ) :
if not sorted_list:
return () ()、() ) )
big=sorted_list[-1]
small=sorted_list[-2]
big_list,small _ list=mean (sorted _ list [ :-2 ]
big_list.append(small )
small_list.append(big )
big_list_sum=sum(big_list ) )。
small_list_sum=sum(small_list )
if big _ list _ sumsmall _ list _ sum :
返回((big _ list,small_list ) )
else:
返回((small _ list,big_list ) )
tests=[ 1,2,3,4,5,6,700,800 ],
[10001、10000、100、90、50、1],
范围(1,11 )、
[12312、12311、232、210、30、29、3、2、1、1]
]
for l in tests:
l.sort () ) )。
打印
打印源列表:t ',l
l1,L2=mean(L ) )
打印'结果列表:t ',l1,l2
打印' distance :t ',ABS(sum(L1 )-sum (L2 ) )
print '-*'*40
输出结果