java面试问项目中遇到的问题,附学习笔记+面试整理+进阶书籍

本文深入探讨了二叉树和二分查找的概念,详细解释了二分查找的优势和缺点,以及如何在数据结构中利用二分查找树实现高效查找。文章还提到了平衡二叉树(如红黑树)的重要性,以及多叉树(如B树)在提升查找性能方面的贡献。此外,内容还包括作者的个人经历和学习资源分享。
摘要由CSDN通过智能技术生成

正文

二叉树

由 n( n > 0)个有限节点组成一个具有层次关系的集合,看起来就像一个倒挂的树,因此称这样的数据结构为树。

一个节点的子节点个数叫做度,通俗的讲就是树叉的个数。树中最大的度叫做树的度,也叫做阶。一个 2 阶树最多有 2 个子节点即最多有 2 叉,因此这样的树称为二叉树,二叉树是树家族中最简单的树。

image.png

两个叉的树就是二叉树,可这除了用来按一定结构存放数据外,跟查询性能好像也没关系,不会又是一个没用的噱头吧。

二分查找

听说二叉树的原始威力来源于一种叫做二分查找的算法。

相传在鹦鹉的原始社会,存在着森严的等级制度,每只鸟必须按高矮顺序分出等级和尊卑。

那么问题来了,如下图,怎样才能找出最高、最矮、中等高的那些鹦鹉呢、以及指定高度的那只呢?

image

第一种方法: 扫描法

一个一个依次测量,完毕后所有的问题都迎刃而解。

这种一个一个依次全部测量的方法叫做扫描,他的缺点很明显,最高和最矮,需要全部测量完毕才能知晓。

而对于指定高度,最好的情况是第一次就找到;最坏的情况是最后一次才找到,时间复杂度为 n,也就是说从 13 个鹦鹉中找到指定身高的那只,最坏的情况是查 13 次。

第二种方法:二分法

13 个鹦鹉全部听令,按从矮到高列队,向左看齐,报数。

image.png

报数字 1 的就是最矮的,报数字 13 的就是最高的,报数字 7 的就是中等身高的那只。

最好和最坏的情况都是一次找到。而查询性能一下子提高 13 倍,我的个乖乖,无论多个只鹦鹉,时间复杂度都是 1,好可怕。

问题:我不服,你这是偷换概念,有本事对比一个查找指定高度鹦鹉的性能。

因为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值