课程设计 【算法设计与分析】动态规划解决石子合并问题( 二 )


4.运行结果
提供输入数据,第一行是正数n,表示有n堆石子 。第二行有n个数,表示每堆石子的个数 。
由输出结果可知,将4堆石子合并成一堆,每堆的石子个数分别是4,4,5,9,2、3堆合并的最小得分为43,3、4堆最大得分为54 。
1.5.2时间复杂度分析
一维动态规划时间复杂度一般有O(n)和O(n^2)两种,时间复杂度取决于状态转移方程 。
如果第i个状态的确定需要利用前i-1个状态,即dp[i]由dp[i-1],dp[i-2],…,dp[0]的取值共同决定,那么此时的时间复杂度为此算法的时间复杂度为O(n2),