数据结构
SKY技术修炼指南
欢迎我的关注公众号:SKY技术修炼指南
展开
-
简单理解线段树
线段树是二叉树的一种,常常被用于求区间和与区间最大值等操作。 场景假设 想象一下这种场景,一个数组现在需要进行两种操作:对某区间内数字进行求和和更新数组中的某个元素。对于更新元素操作很容易看出它的时间复杂度是O(1)O(1)O(1),区间求和的时间复杂度是O(n)O(n)O(n)。 通过下面这种方法可以降低区间元素求和的时间复杂度:设置另一个数组sum_table,这个数组每个位置的值存储table数组中当前位置及之前的所有元素之和。这样,我们可以把区间元素求和的时间复杂度降为O(1)O(1)O(1),原创 2020-07-14 18:07:41 · 135 阅读 · 0 评论 -
本科数据结构课程的漏网之鱼-红黑树(下)
title: 本科数据结构课程的漏网之鱼-红黑树(下) date: 2020-06-26 15:21:26 tags: 数据结构 categories: 数据结构 红黑树删除节点的操作与插入操作相比难度大大提高,以至很多博客讲的很不细致,但是为了内容的完整性,还是决定尝试写一下这篇红黑树删除节点的文章。 在正式开始介绍红黑树的删除操作之前,我们先来介绍一下普通的二叉搜索树的删除节点操作。 二叉搜索树删除节点 二叉搜索树删除节点的基本情况有三种: 当待删除节点是叶子节点时,直接删除这个节点即可。 .原创 2020-06-30 19:31:08 · 144 阅读 · 0 评论 -
本科数据结构课程的漏网之鱼-红黑树(上)
在我大学的时候,就曾经从参加面试的学长那里知道红黑树这种数据结构,但是经过我的观察,绝大部分的本科数据结构课程里都没有这部分内容。本文将介绍这种被本科教学体系遗弃,但却常常被工作面试中提到的数据结构,并且为后面的HashMap的内容做铺垫。 定义与性质 首先需要明确的是,红黑树是一棵二叉搜索树,如果不了解二叉搜索树的朋友可以先去了解一下。这里想到了本人在研究生复试的时候被问到什么是二叉搜索树,一时竟然没想起来。 下面是一棵典型的红黑树,我们可以看到这颗红黑树的确是一棵二叉搜索树。 一般来说,红黑树具有原创 2020-06-24 19:08:04 · 289 阅读 · 0 评论 -
你一定要了解的数据结构-并查集
今天要介绍一种非常重要的数据结构-并查集,这种数据结构常常被用于检测有环图的问题。 问题引入 给定一些节点,我们想要确定这些节点哪些属于同一个子集,该怎么做?现在假定这些节点之间通过边来连接,我们尝试用图片来表示一下。 我们可以看到一共有6个节点,其中0、1、2、3这几个节点之间是连通的,4和5也是连通的。所以我们可以把上面6个节点分为两个集合,集合1包含0、1、2、3共4个节点,集合2包含4和5两个节点。 通过图片表示很直观,但是,我们如何用代码实现呢? 思路分析 由上面的内容我们很容易知道,两个节点原创 2020-06-09 17:21:49 · 146 阅读 · 0 评论