贪婪活动选择问题和背包问题



        今天上午听了米老师讲的算法,感觉收获非常多,对于算法更加有信心了。首先,先来宏观看一下:

 

       




           这三种算法总的来说,刚開始看的时候不知道怎么下手,可是看多了也会有那么一点儿感觉。分治法是这三种算法里面都有的思想,动态规划和贪心都是将问题分解成子问题求解,但动态规划里面的子问题都带有联系,而贪心算法里面的子问题都相对独立,唯一不同的是,贪心算法要首先想出一个解决方式来构造求解最优解的过程。


     宏观介绍下算法后,来看看贪心算法的两个实例。


   一,活动选择问题


    

          


    解决方式:   

              对于活动的选择问题,我们求解过程是这种,先把这些活动依照结束时间从早到晚排列,然后从第一个開始选择,假设第i个活动的開始时间比第i-1个活动的结束时间晚,我们就将此活动增加到解集合中。


       

    伪代码解读:



          递归方式求解:


   




            迭代方式求解:





   假设看完伪代码后还是没什么感觉,能够用以下的一些数据进行计算:

          


    



二,背包问题

 

       



   解决方式:


           由于能够部分装入背包,所以,我们将物品依照单位价值从大到小排序,依次选取,直到背包被装满为止。


 伪代码解读:


        


 


      

       小结,本来也想写写动态规划的伪代码注解的,but......我也不太懂,算法一直以来是我比較弱的地方,可是感觉研究起来,也是最有意思的,跪求大神參与讨论~~~~~~~

       

  



posted @ 2015-06-05 19:54  blfshiye  阅读(244)  评论(0编辑  收藏  举报