摘要:
1. 散列函数如果输入的关键字是整数,则一般合理方法是直接返回对表大小取模(Key mod TableSize)的结果,除非 Key 碰巧具有一些不太理想的特质。如,表的大小为 10,而关键字都是 10 的倍数,显然此时都会被散列在 0 的位置。为了避免上述情况的发生... 阅读全文
摘要:
1. 散列函数如果输入的关键字是整数,则一般合理方法是直接返回对表大小取模(Key mod TableSize)的结果,除非 Key 碰巧具有一些不太理想的特质。如,表的大小为 10,而关键字都是 10 的倍数,显然此时都会被散列在 0 的位置。为了避免上述情况的发生... 阅读全文
摘要:
1. 什么是 B 树B 树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡二叉树; B 树类似于红黑树,但它们在降低磁盘 I/O 操作数方面要更好一点,许多数据库系统使用 B 树或者 B 树的变种来存储信息;2. B 树的用武之地 —— 外存搜索当数据规模大到内存... 阅读全文
摘要:
1. 什么是 B 树B 树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡二叉树; B 树类似于红黑树,但它们在降低磁盘 I/O 操作数方面要更好一点,许多数据库系统使用 B 树或者 B 树的变种来存储信息;2. B 树的用武之地 —— 外存搜索当数据规模大到内存... 阅读全文
摘要:
信息处理的典型模式是,将所有数据项视为一个集合,并将其组织为适宜的数据结构(或者说使用适宜的数据结构对之进行存储以及组织),进而借助操作接口高效访问。为了考查和评价各操作接口的效率,除了从最坏情况的角度出发,也可假定所有操作彼此独立、次序随机且概率均等,也即从平均情况... 阅读全文
摘要:
信息处理的典型模式是,将所有数据项视为一个集合,并将其组织为适宜的数据结构(或者说使用适宜的数据结构对之进行存储以及组织),进而借助操作接口高效访问。为了考查和评价各操作接口的效率,除了从最坏情况的角度出发,也可假定所有操作彼此独立、次序随机且概率均等,也即从平均情况... 阅读全文
摘要:
伸展树的设计思路,鉴于数据访问的局部性(28原则)在实际应用中普遍存在,将按照“最常用者优先”的启发策略。尽管在最坏情况下其单次操作需要 O(n) 时间,但分摊而言仍然 O(logn) 以内。与 AVL 树一样,伸展树也是平衡二叉搜索树的一种实现。伸展树的实现更为简洁... 阅读全文
摘要:
伸展树的设计思路,鉴于数据访问的局部性(28原则)在实际应用中普遍存在,将按照“最常用者优先”的启发策略。尽管在最坏情况下其单次操作需要 O(n) 时间,但分摊而言仍然 O(logn) 以内。与 AVL 树一样,伸展树也是平衡二叉搜索树的一种实现。伸展树的实现更为简洁... 阅读全文
摘要:
适度平衡树,是指将树高限制为“渐进地不超过 O(logn)”。举例:AVL 树:兄弟节点的高度之差不超过 1(≤1)伸展树;红黑树;kd-树;当然这些都可以归入平衡二叉搜索树(BBST,Balanced Binary Search Tree)之列。1. 旋转调整最基... 阅读全文
摘要:
适度平衡树,是指将树高限制为“渐进地不超过 O(logn)”。举例:AVL 树:兄弟节点的高度之差不超过 1(≤1)伸展树;红黑树;kd-树;当然这些都可以归入平衡二叉搜索树(BBST,Balanced Binary Search Tree)之列。1. 旋转调整最基... 阅读全文