算法基础6:二叉树查找
2021-03-15 22:04
81 查看
算法是基础,小蓝同学准备些总结一系列算法分享给大家,这是第6篇《二叉树查找》,非常赞!希望对大家有帮助,大家会喜欢!
前面系列文章:
归并排序
#算法基础#选择和插入排序
由快速排序到分治思想
算法基础:优先队列
二分查找
1、二叉树
在链接二叉树查找之前我们要了解一下二叉树是个什么玩意。
二叉树指的数一颗最多只有两个两个子树的数据树型数据结构。其两个子树分别称为左子树和右子树,一个在根节点的左边,一个在根节点的右边 这就是一颗二叉树。下面这些都是二叉树。
2、二叉查找树
在了解了二叉树的前提下,我们可以聊聊二叉查找树。二叉查找树是一个特殊的二叉树。他同样具有最多只有两个子树的特性。但是他的特别点在于其左子树大于根节点。其右子树小于根节点。
3、二叉查找树实现查找
因为二叉查找树的特殊特性使用它可以很方便的对队列的的数据进行查找和插入和删除。
器查找实现原理如下:他先找到根节点和根节点对比大小之后,如果大于根节点则去左节点去查找,如果还是大于左节点的话,则继续找左节点的左节点。如果小于左节点的话,则找做节点的右节点,若是查找的节点为空了。则表示不存在这个值。 若是等于了,就表示找到对应的值。同理如果小于根节点则去右节点查找和左节点一样。
具体代码如下:
public Value get(Key key){ return get(root, key); } private Value get(Node x,Key key){ if(x==null) returnnull; intcmp=key.compareTo(x.key); if(cmp<0) return get(x.left,key); elseif(cmp>0) return get(x.right,key); elsereturnx.value; }
特性:查找速度 1.39lgN 插入速度 1.39lgN
优缺点:
优点:和二分查找对比起来,插入速度更快二分查找插入的速度是N/2 插入速度是1.39lgN
缺点:查找慢和二分查找对比起来二分查找的查找速度为lgN 所以比二分查找慢39%
应用:
我们之后会说的二三树,红黑树,B-树都是基于二叉查找树扩展实现的,理解了二叉树,理解剩下的这些相对容易些。
相关文章推荐
- 算法基础6:二叉树查找
- 一步一步复习数据机构和算法基础-二叉树创建(前序建立二叉树)
- 一步一步复习数据结构和算法基础-二叉树基本操作
- 二叉树的一些基础算法(先序,中序,后序,层次,深度,宽度,距离)
- JAVA代码—算法基础:查找最长无重复的子字符串
- 一步一步复习数据结构和算法基础-斐波那契查找法
- 基础算法之二分查找
- 测试开发基础之算法(12):支持动态数据集合快速插入、删除、查找的二叉查找树
- SVM实现多分类的程序基础工作(三)——基于纠错编码的SVM多类分类算法和基于二叉树的多类SVM算法的基本思想
- 【数据结构与算法】二叉树元素的添加与查找代码(Java实现)
- 算法-二叉树查找排序
- 算法基础(五):二叉树(基础)
- [算法]二叉树基础与二叉查找树与堆
- 基础算法-二分查找
- 基础算法-查找:插值查找
- JAVA代码—算法基础:给定一个字符串查找最长回文子串
- 微软算法100题04 二叉树中查找和为某值的所有路径
- 【基础算法】二分法查找
- 算法基础知识之树、二叉树
- 基础算法 - 二分查找