十种值得了解的算法概述
发布时间
阅读量:
阅读量
1. 二叉查找树
我们此前曾提及二分查找算法。在已排序的数组中,该算法具有较高的执行效率,但若需要添加新元素,则必须重新对整个序列进行排序——这导致插入操作的效率显著下降。为应对这一问题,我们提出了一种新型的数据结构:二叉查找树(binary search tree)。
二叉查找树的结构大致如下:
David
Adit
Manning
Maggie
Mike
对于树中的每一个节点而言,其左子节点对应的值应当小于当前节点,而右子节点对应的值则应大于当前节点。我们可以如上图所示的方式利用该结构来存储用户名,这样在执行查找、插入与删除操作时的时间复杂度均可达到O(log n)。相比之下,在数组中结合二分查找的方式虽然查找操作的时间复杂度同样为O(log n),但插入与删除操作的时间复杂度却会增加至O(n)。
尽管二叉查找树在实现查找、插入与删除等操作时具有较高的效率,但其不足之处在于不支持随机访问功能。此外,理想的二叉树形态应当是平衡的,避免出现向某一侧过度倾斜的情况。
如果希望深入探索数据库系统或更高级的数据结构相关内容,则可以进一步学习B树、红黑树、堆以及伸展树等知识。
2. 反向索引
反向索引技术通常被应用于构建搜索引擎。
最为基础的方式是,将网页中所包含的每一个单词作为字典的索引项,而对应的值则是包含该单词的所有页
全部评论 (0)
还没有任何评论哟~
