散列表是实现字典操作的一种有效数据结构,最坏情况的查找时间是$\theta (n)$,平均查找时间为$O(1)$。
散列表是普通数组概念的推广,数组可以直接寻址。
当实际存储的关键字数目比全部可能的关键字总数要小时,可以使用散列表来替代直接数组寻址。
分治 动态规划 贪心
分治 Divide and Conquer
将问题划分为互不相交的子问题。递归地求解子问题的解,再将这些解组合起来,得到原问题的最优解。(eg. 归并排序算法 $T(n)$)
- 分解原问题为若干子问题,这些子问题是原问题的规模较小的实例。
eg. 分解带排序的n个元素的序列成各具n/2个元素的两个子序列。 - - -$D(n)=\theta (1)$ - 解决这些子问题。
如果子问题规模足够小(基本情况),就直接求解,否则(递归情况)使用递归进行求解。
eg. 使用归并排序递归地排序两个子序列。 - - -$2T(n/2)$ - 合并这些子问题的解获得原问题的解。
eg. 合并两个已排序的子序列以产生已排序的答案。 - - -$C(n)=\theta (n)$
正则化方法
Hello World
Posted on
Words count in article:
242
|
Reading time ≈
1
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.