基础算法

搜索算法是利用计算机的高性能来由目的的穷举一个问题的解空间的部分或者所有的可能的情况,从而求出问题的解的一种方案。搜索算法一般要根据题目条件进行巧妙的优化和剪纸,以提高搜索的效率。

 模拟算法:既程序完整的按照题目所描述的方法运行,最终得到答案,模拟算法通常对算法的设计要求不高,但是要求程序选择最合适的数据结构来进行模拟,代码量略大

动态规划:是算法的设计思想中最难的,也是最有趣的部分,动态规划适合重叠子问题和最优子结构性质的问题,把原问题分解成相对简单的子问题的方式的求解复杂问题的办法,使用动态规划解题有较高的时间效率,关键在于他减少了不必要的计算或者重复计算的部分。

分治算法:分治算法把原来的问题分解成很小的问题,解决之后,原问题的解就是子问题的解的合并。

递归算法:它通常把大型的复杂的问题层层转化成一个与原问题相似的规模较小的问题来求解,只要少量的代码就可以描述出解题过程中需要多次重复计算的问题,减少代码量

排列问题:排列组合是组合学中最基本的概念,所谓排列是从给定的元素中取出指定的个数的元素进行排序。组合则是取出不考虑排序。

排序

穷举算法:枚举,最没效率,最简单,最基础的算法,具有全面性的优点

贪心算法:对问题求解时候,总是做出当前看来最好的选择,也就是说不从整体上考虑,所做的仅是某种意义上的局部的最优解

递推算法:通过已知条件,利用特定的关系得出中间结论,直至得出结果的算法,有逆推顺推

原文地址:https://www.cnblogs.com/jweie/p/8398477.html