Algorithm 置换和最小化的贪心算法
我有一个数组Algorithm 置换和最小化的贪心算法,algorithm,greedy,Algorithm,Greedy,我有一个数组{a1,a2,…,一个}(自然数),我需要建立一个贪婪算法,找到一个1…n的排列(i1,…in),使和最小化:1.ai1+2.ai2+…+(n)− 1) 艾因−1+n.ain 当然,我可以尝试所有的方法,然后选择一个求和最小的方法(这将在O(n!)中给出正确的结果) 我认为贪婪的选择是按降序选择数字,但我不知道如何证明这是有效的 附言:这只是为了学习和训练,我不能“贪婪地”认为按降序选择数字是最佳的 证明是通过对n的归纳:假设有一个排列是最优的,并且最小的数不在最后一位。然后,将最后
{a1,a2,…,一个}
(自然数),我需要建立一个贪婪算法,找到一个1…n的排列(i1,…in),使和最小化:1.ai1+2.ai2+…+(n)− 1) 艾因−1+n.ain
当然,我可以尝试所有的方法,然后选择一个求和最小的方法(这将在O(n!)中给出正确的结果)
我认为贪婪的选择是按降序选择数字,但我不知道如何证明这是有效的
附言:这只是为了学习和训练,我不能“贪婪地”认为按降序选择数字是最佳的 证明是通过对n的归纳:假设有一个排列是最优的,并且最小的数不在最后一位。然后,将最后一位的元素与最小的元素交换,将减少总的和。这与最优性假设相矛盾,因此我们必须知道最小的元素位于最后。根据归纳假设,其他元素在前(n-1)位的顺序是递减的 n=1的基本情况很简单