算法设计与分析

来源:互联网 发布:那个网络教育好 编辑:程序博客网 时间:2024/05/16 11:13

          最近让我很头疼的一件事,就是做算法题。早就听师哥师姐们说算法特别难,这会儿终于体会到了。不过,我们不能被他打到,不能被他可怕的外表吓到。

      【为什么难】我仔细想了想,为什么我们觉得他很难?原因有三:

(1)听从了别人的看法,还没开始就已经认为他很难;

(2)之前没有接触过C语言或者C++;

(3)踏不下心去读题,很浮躁。

        这三种原因都是可以靠我们自己克服的,虽然没有学过C语言,但是我们学过C#,只不过是换了一身衣服,那三大控制结构是永远都不会变的。如果实在看不懂的,我们可以去网上找一些C语言的基础知识,看两眼之后你就会恍然大悟。

       【核心思想】下面用一张思维导图来描述一下这几种算法的核心思想以及它们之间的关系:


(注:是动态规划法和贪心法,不是发,笔误请原谅!)

        【背包问题】其中最典型的例子是用动态规划法求背包问题的最优解:

例如:重量分别是(2、2、6、5、5),价值分别是(6、3、5、4、6),背包容量为10,求装入背包的物品和获得的最大值?

解:如图所示,从第一排的最左边开始往右填数,一行一行的计算背包中获得的最大价值;

                               

       【总结】算法设计是一个很复杂的工作,要考虑多个目标,包括正确性、可读性、健壮性和高效性等。由于实际问题多种多样,问题求解的方法千变万化,所以,算法设计又是一个灵活的充满智慧的过程,需要设计人员根据实际情况具体问题具体分析。


1 0
原创粉丝点击