目录 引言 直接寻址 散列寻址 散列函数 除法散列 乘法散列 全域散列 完全散列 碰撞处理方法 链表法 开放寻址法 线性探查 二次探查 双重散列 随机散列 再散列问题 完整源码(C++) 参考资料内容 1、引言 ...
分类:
编程语言 时间:
2014-11-01 21:45:34
阅读次数:
527
动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。与分治法不同的是,动态规划算法对每个子子问题只求解一次,将其结果保存在一张表中。
动态规划通常应用于最优化问题。
动态规划算法的设计可以分为如下4个步骤:
描述最优解的结构;递归定义最优解的值;按自底向上的方式计算最优解的值;由计算结果构造一个最优解。
第1~3步构成问题的动态规...
分类:
编程语言 时间:
2014-11-01 13:33:27
阅读次数:
210
6.5-3 1 HEAP-MINIMUM(A) 2 return A[1] 3 4 HEAP-EXTRACT-MIN(A) 5 if A.heap-size A[i]15 error "new key is biger than current key"16 A[...
分类:
编程语言 时间:
2014-10-31 06:22:00
阅读次数:
246
1. 寻找第k大(小)的数 假设数据存储在数组a[1..n]中首先,寻找一个数组中最大或者最小的数,因为最大(小)的数一定要比其他所有的数大(小),因此至少要比较完所有的pair才能确定,所以时间复杂度在O(n)。那么寻找第k大(小)呢?比较直观的,就是对数组中国所有的数据先进行排序,在我们这种渣渣...
分类:
编程语言 时间:
2014-10-29 23:37:05
阅读次数:
305
10.4-2 给定n个结点的二叉树,写出一个O(n)时间的递归程序,将该树种每个结点的关键字输出。伪代码:1 TREE-PRINT(T)2 if T != NIL3 print key[T]4 TREE-PRINT( left[T] )5 TREE-PRINT( right[...
分类:
编程语言 时间:
2014-10-29 07:05:07
阅读次数:
194
a. DBCC DROPCLEANBUFFERS 清空缓存信息b. DBCC FREEPROCCACHE 从过程缓存中删除所有元素2. 引用两个和尚打水的故事,说明平时要注重积累,只有量变达到了才会形成质变3. 程序员的知识结构图:a.算法(推荐书籍: 《算法导论》 ,建议大家了解 B 树算法、LS...
分类:
Web程序 时间:
2014-10-27 22:53:01
阅读次数:
246
一般情况下,一元n次多项式可写成:
其中,pi是指数为ei的项的非零系数,且满足
因此,我们可以采用线性表(定义:线性表是由n个数据元素构成的有限序列,比如数组、向量、链表等等)来表示:
其中,每一项的指数i可以用其系数pi的序号表示。
在通常的应用中,多项式的次数比较大,使得线性表的长度很难确定,因此我们可以考虑链表,向量也可以(c++中)。举...
分类:
编程语言 时间:
2014-10-26 15:39:13
阅读次数:
359
一、概念 1.斐波那契堆 斐波那契堆是可合并堆 在不涉及删除的操作(除去EXTRACT和DELETE)中,操作仅需O(1)的平摊运行时间 当EXTRACT和DELETE的操作数目较小时斐波那契堆能得到较好的运行效率。 斐波那契堆不能有效地支持SEARCH操作 用于解决诸如最小生成树和寻找单源最短路径...
分类:
编程语言 时间:
2014-10-26 09:04:15
阅读次数:
665