查找算法
数据结构查找算法
一颗小陨石
除非我不想赢,不然没人能让我输
展开
-
数据结构学习之斐波那契查找-----------java实现
一、斐波那契数列介绍{1, 1, 2, 3, 5, 8, 13, 21, 34, 55 } :斐波那契数列的两个相邻数 的比例,无限接近 黄金分割值0.618二、斐波那契查找算法2.1原理同二分法差不多,只不过在mid的位置上作了处理。在斐波那契查找算法中,mid的位置位于黄金分割点附近,即 mid = low + F[ k - 1 ] - 1,其中F为斐波那契数列关于F[ k -...原创 2019-11-01 12:17:57 · 265 阅读 · 0 评论 -
《算法4》红黑树原理实现---笔记
前面讲了AVL平衡树的实现https://blog.csdn.net/weixin_43696529/article/details/104701374,但由于AVL是高度平衡的树(高度差小于等于1),而红黑树是根据颜色来不严格的实现平衡,因此在插入和删除节点时,红黑树的调整次数较少,尤其是在大量数据面前时,红黑树的效率会更高。一、定义介绍首先我们需要知道什么是2-节点,什么是3-节点。2-...原创 2020-03-07 17:21:18 · 518 阅读 · 2 评论 -
AVL树的原理讲解-------java实现
前面讲到了二叉查找树,虽然能够很好的应用于大多数的场景,但是他们在最坏情况下性能还是很差的,如二叉查找树最坏情况下是一颗高度为N的树,显然不利于查找。因此我们需要让查找树保持一种平衡,如二叉查找树最优情况的状态一样。一、AVL树基础AVL树是一颗保持平衡的二叉查找树,保证了树的深度为O(logN)。其每个节点的左子树和右子树的高度都最多相差1上图就是一颗AVL树,其任意节点的左孩子和右孩...原创 2020-03-06 18:12:39 · 321 阅读 · 2 评论 -
二叉查找树(BST)---java实现
一、定义二叉查找树(BST)是一颗二叉树,其每个节点的值都比左孩子的任意节点大,比右孩子的任意节点小。二、数据结构public class BinarySearchTree<T extends Comparable<? super T>> { private TreeNode<T> root; public BinarySearchT...原创 2020-03-06 15:38:13 · 233 阅读 · 0 评论 -
顺序查找和二分查找----java实现
一、基于无序链表的顺序查找没啥讲的,就是顺序找。/** * 顺序查找(基于无序链表) * 未命中和命中都需要N次比较 * 命中最坏需要N次比较 * @author MaoLin Wang * @date 2020/3/118:01 */public class SequentialSearchST<Key, Value> { /** * 首节点 ...原创 2020-03-05 22:44:37 · 147 阅读 · 0 评论