请给出五个常见的算法类型，以及每个算法类型的简要说明。
1. 贪心算法：贪心算法是一种采用贪心策略的算法，它是针对最优化问题而设计的算法。贪心算法的基本思想是，在每一步选择中都采取当前状态下最好或最优的选择，从而希望最后得到全局最好或最优的解。

2. 动态规划算法：动态规划算法是解决最优化问题的一种常用算法，它的基本思想是将待求解问题分解成若干个子问题，先求解子问题，再合并子问题的解得到原问题的解。

3. 分治算法：分治算法是一种递归式的算法，它的基本思想是将待求解的问题划分成若干个子问题，先求解子问题，再将子问题的解合并起来得到原问题的解。

4. 回溯算法：回溯算法是一种搜索算法，它是针对有多种解决方案而又不知道哪一种最优的问题而设计的算法。回溯算法采用试错的思想，尝试分步解决问题，当发现某一步并不可行时，回溯到上一步并尝试其它分支。

5. 排序算法：排序是算法中最基本的问题之一，常见的排序算法包括插入排序、选择排序、快速排序、归并排序等。排序算法的核心思想是将一个无序的序列按照一定的顺序重新排列成有序的序列。