![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
查找
文章平均质量分 67
EmilyGnn
这个作者很懒,什么都没留下…
展开
-
符号表
符号表最主要的目的就是将一个键和一个值联系起来。用例能够将一个键值对插入符号表,并能够从符号表的所有键值对中按照键直接找到相对应的值。 符号表是一种存储键值对的数据结构,支持两种操作:插入(put),即将一组新的键值对存入表中;查找(get),即根据给定的键得到相应的值。 ...原创 2018-09-01 09:20:25 · 1011 阅读 · 0 评论 -
顺序查找(基于无序链表)
基于无序链表的顺序查找 1、基本思想 采用链表数据结构,每个节点存储一个键值对 get():顺序遍历链表,用equals()方法比较键,如果匹配成功就返回相应的值,否则返回null put():顺序遍历链表,用equals()方法比较键,如果匹配成功就用第二个参数更新该键相关联的值,否则就创建一个新的节点并将该键值对插入到链表的开头。 2、算法实现 /** 算法3.1 顺序查找...原创 2018-09-01 10:36:42 · 2753 阅读 · 0 评论 -
二分查找(基于有序数组)
1、基本思想 2、算法实现 3、基于二分查找的有序符号表 4、性能分析 5、顺序查找和二分查找比较 1、基本思想 采用一对平行的数组,一个存储键一个存储值 实现的核心是 rank() 方法,它返回表中小于给定键的键的数量。 2、算法实现 二分查找法:将被查找的键和子数组的中间键比较。如果被查找的键小于中间键,就在左子数组中继续查找,如果大于就在右子数组中继...原创 2018-09-01 17:01:49 · 4057 阅读 · 0 评论 -
二叉查找树
1、基本思想 2、基本实现 2.1 数据表示 2.2 查找 2.3 插入 3、性能分析 1、基本思想 将链表插入的灵活性和有序数组查找的高效性结合起来的符号表实现——二叉查找树 定义:一棵 二叉查找树(BST)是一棵二叉树,每个节点都含有一个Comparable的键(以及对应的值)。且每个节点的键都大于其左子树中任意节点的键而小于右子树中任意节点的键。 2、...原创 2018-09-17 10:31:25 · 237 阅读 · 0 评论 -
2-3 查找树
[TOC] 在之前的二分搜索和二叉查找树中已经能够很好地解决查找的问题了,但是它们在最坏情况下的性能还是很糟糕 理想情况下我们希望能够保持二分查找树的平衡性。在一棵含有N个结点的树中,我们希望树高为 ~lgN,这样我们就能保证所有查找都能在 ~lgN 次比较内结束 一、定义 为了保证查找树的平衡性,我们需要一些灵活性,因此我们允许树中的一个结点保存多个键。 将一棵标准的二叉查找树中的结点...原创 2018-09-17 19:55:43 · 940 阅读 · 0 评论 -
红黑二叉查找树
文章目录一、定义二、相关操作2.1 颜色表示2.2 左旋转、右旋转2.3 颜色转换2.4 总结 之前所述的 2-3树 的插入算法并不难理解,我们要利用名为 红黑二叉查找树 的简单数据结构来表达并实现它。最后的代码量并不大。 一、定义 红黑树背后的思想是用标准的二叉查找树(完全由2-结点构成)和一些额外的信息(替换3-结点)来表示 2-3树 对于任意的2-3树,只要对结点进行转换,我们都可以立即派生...原创 2018-09-18 15:37:59 · 681 阅读 · 0 评论