为期六天的编程课落下帷幕,我收获了不少新的知识,学会了一些基本算法。
下面是我对学习算法的总结与体会。
一.【回溯算法】
回溯算法的基本思想是选择一种可能探索下去,直到发现错误再退回一步重新选择,一直到找到解或无解为止,核心则是利用for循环里的递归,进行判断后递归,递归结束后撤销选择。
一个经典的问题是八皇后:在棋盘上放置皇后,使每个皇后横竖斜列都没有皇后。则可知皇后的放置条件是行列号及对角线未被占用,方可放置。该问题对回溯算法的体现,在于当到达某一行将要放置皇后时做出判断,发现皇后无法放置时,会退出当前皇后,回溯一步,重新放置皇后,直到能找到一种放置皇后的方法。
二.【贪心算法】
贪心算法的基本思想是根据局部最优推导出全局最优,局部最优解推导出全局最优解。
我印象比较深刻的是活动安排问题:安排N个活动使得一天中能够进行的活动最多。安排活动的前提是活动能正常进行,所