Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 置换和最小化的贪心算法_Algorithm_Greedy - Fatal编程技术网

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的基本情况很简单