码迷,mamicode.com
首页 > 编程语言 > 详细

算法第三章

时间:2018-11-05 00:01:34      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:效率   分治   分解   递归   分治法   本质   第一题   解决   时间   

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)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!