![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 81
骑着火箭的蜗牛
自学Java的小白
展开
-
浅谈二分查找
一、二分查找的思想 二分查找是一种生活中随处可见的查找算法。不知道大家有没有玩过猜数字这样的游戏。我随机想一个1-100之间的数据,然后让别人猜我想的数字。每猜一次我都会告诉他是猜大了还是猜小了,知道猜中为止。我想不会有人从1开始一直猜到100吧,聪明的人都会取一个中间值也就是从50开始猜起,如果猜大了,那么我们考虑的区间就会变成1-49,如果猜小了,我们考虑的区间就会变成51-100。运用这种思想我们每次猜测过后,所需要考虑的区间就会减少一半。怎么样,是不是很节省时间呢? 再比如有100个价格不同的商品,原创 2021-01-31 11:50:19 · 208 阅读 · 0 评论 -
浅谈数据结构--红黑树
浅谈数据结构–树(1) 浅谈数据结构–二叉查找树(2) 前两篇文章介绍了树、二叉树、二叉搜索树。其中二叉查找树(二叉搜索树)最为常见,但是二叉树在动态更新的过程中会导致左右子树不平衡。在极端的情况下二叉搜索树会退化为链表,时间复杂度从O(logn)退化为O(n)。为了解决这个问题,一种新的树–平衡二叉查找树(BST)出现了,而红黑树是最长用的一种平衡二叉查找树。 1、平衡二叉查找树 平衡二叉树 非平衡二叉树 何为平衡二叉树呢?我们首先来看一下它的定义:二叉树中任意一个节点的左右子树的高度相差不能大于1。原创 2021-01-01 20:37:41 · 113 阅读 · 0 评论 -
浅谈数据结构--二插查找树
一、二插查找树 浅谈数据结构之–树(1) 在上一篇的文章中,介绍了树、二叉树、以及二叉树的遍历的相关知识。本文将介绍一种特殊的二叉树,二叉查找树。这种数据结构支持动态数据集合的快速插入、删除、查找操作。 二叉查找树又称二叉搜索树,通过字面意思我们可以了解到,这种数据结构是为了实现快速查找而应运而生的。不过,它不仅仅支持快速查找,而且还支持快速插入和删除一个数据。 二叉查找树的要求: 在树中的任意一个节点,其左子树中的每个节点的值,都要小于这个节点的值,而右子树节点的值都大于这个节点的值。如下图所示 二、二原创 2020-12-29 20:34:52 · 159 阅读 · 3 评论 -
浅谈数据结构--树
树(Tree) 一、相关概念 “树”这种数据结构与我们现实中的树十分相似,是一种非线性的数据结构。里面的每个元素我们称之为节点,这里有几个概念:父节点、子节点、兄弟节点、根节点、叶子节点。根据字面意思对照上图是否可以大致理解这几个概念呢? 父节点:图中的A、B、C、F节点都可以称为父节点 子节点:父节点向下延伸的节点,一个父节点可以有多个子节点,如A节点的子节点为B、C节点 兄弟节点:就是属于同一个父节点的子节点,如图中G、H节点同属于C节点,则G、H节点互为兄弟节点 根节点:毫无疑问最上边的节点A称为原创 2020-12-25 11:35:33 · 130 阅读 · 0 评论