0%

搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找。

所谓排序,就是将数据分为有序区和无序区,通过对无序区元素的调整并扩展有序区,最后达到所有元素都有序的状态。在排序界,常见(或者说常用)的算法主要有冒泡排序、直接插入排序、选择排序、希尔排序、堆排序、快速排序、归并排序。

字符串匹配算法,是在实际工程中经常遇到的问题。此算法通常输入为原字符串(string)和子串(pattern),要求返回子串在原字符串中首次出现的位置。

分治法的思想是分而治之,这个技巧是很多高效算法的基础。

动态规划法和贪心法很像。贪心法就像是理想化的动态规划,每次总是做出在当前看来是最好的选择,而动态规划则需要根据情况进行综合判断。

贪心法又称贪婪法,是指在对问题求解时总是做出在当前看来是最好的选择。

穷举法又称列举法,其基本思想是逐一列举问题所涉及的所有情况。

一个算法的优劣往往通过算法复杂度来衡量,算法复杂度包括时间复杂度和空间复杂度两个方面。

算法的表示主要有使用自然语言描述、使用流程图描述、使用伪代码描述。