懒得写那么详细了叭 还是多花时间去做算法题去
最优合并问题:
给定k个排好序的序列s1,s2,…,sk,用2路合并算法将这k个序列合并成一个序列。假设所采用的2路合并算法合并两个长度分别为m和n的序列需要m+n-1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需要的总比较次数最少。
贪心策略:
每次选最小的序列合并得到最少比较次数;
2 个长度分别为m和n的序列需要m + n -1次比较
问题模型:
贪心策略写即可
排好序从小到大
2 个长度分别为m和n的序列需要m + n -1次比较
n = int(input())
a = list(map(int, input().split(' ')))
w=int(0)
i=int(0)
a.sort()#从小到大排序
while(i<n-1):#
w=w+a[i]+a[i+1]-1;#2个长度分别为m和n的序列需要m+n -1次比较
a[i]=a[i]+a[i+1];
a[i+1]