算法第三章

mac2022-06-30  92

1.你对动态规划算法的理解(2分)

答:动态规划算法其实和分治法很像,本质都是把一个大的问题分解成若干个小问题,通过求解子问题得到原问题的解,而子问题一般是存在联系的,用分治法会消耗大量时间,子问题被重复计算多次,如果我们把已解决子问题的答案保存,需要时拿出来用,这样可避免大量计算,我们用一个表来记录这些结果,这是动态规划的思想。

2.分别列出编程题1、2的递归方程(2分)

第一题:

for(int i = 1; i < n; i++){        for(int j = 0; j < i; j++){            if(a[j] < a[i] && b[j] + 1 > b[i]){                b[i] = b[j] + 1;            }        }    }

第二题:

for(int i = n - 2; i >= 1; i--){        for(int j = i + 1 ; j <= n - 1; j++){            if(rent[i][n] > (rent[i][j] + rent[j][n]))             rent[i][n] = rent[i][j] + rent[j][n];        }    }

3.说明结对编程情况(1分

答:自己对动态规划并不是特别了解,自己编程所花时间很长,结对编程提高了我的效率。

转载于:https://www.cnblogs.com/kop126/p/9906497.html

最新回复(0)