讲一讲这些算法的基本含义和思想

解决方案 »

  1.   

    宽度优先: 是进行二叉树搜索时按层次序搜索;
    深度优先: 是进行二叉树搜索时按左树(Child)搜索;(不知对不对)其实这些在一本C++数据结构中都有的!你找本看看!
      

  2.   

    深度优先是搜索时先搜索下层节点,等所有下层节点搜索完了再访问当前节点
    回溯和分支限界是同一个思想,就是在产生某个状态(可能有N个子选择)的过程中,预先通过逻辑判断发现那些不可能产生正确结果的状态的子集,从而缩短搜索时间。分支限界比回溯高级,但是对判断函数的设计要求比较高,而回溯则只是简单的判断而已。
    动态规划是通过局部最优导出整体最优,中间用到了贪心的一些思想,但是这钟设计往往需要证明局部最优能够导出整体最优(但是程序员一般都只能自认为而已)
    A和A*算法是一个启发式算法,A 是基于在上层节点尽可能深度优先(尽快逼近解),下层节点广度优先(提高命中率)来利用她们各自的优点搜索。A*算法设计出的启发函数可以保证记不太清细节了(没办法,太久没有玩过了,就姑且听之吧)说这么多,好歹加点分吧,50不太够哦:)