首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法
我为双鱼狂
创建于2021-08-01
订阅专栏
学习数据结构,分析算法逻辑
等 8 人订阅
共44篇文章
创建于2021-08-01
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
数据结构与算法-基础(十四)红黑树(2)添加元素
红黑树添加元素后,需要根据红黑树的 5 条性质判断是否满足,如果不满足就需要做相应的处理使其依然满足红黑树。分析逻辑和实现代码上面有一些比较巧妙的处理点,很值得学习。
数据结构与算法-基础(十三)红黑树(1)概述
红黑树是数据结构中重要的一种结构,其本质是通过定义一些性质,让二叉树分布结构变的相对合理,并在动态添加或者删除的过程中去修复结构。红黑树在搜索、添加、删除这 3 种操作的效率相对比较均衡。
数据结构与算法-基础(十二)B 树
B 树是一种平衡的多路搜索树,在添加、删除和搜索等一些操作上和二叉搜索树是同样的逻辑,除此之外 4 阶 B 树在结构上和红黑树也是相似的。所以了解 B 树,可以更好的切入学习红黑树。
数据结构与算法-基础(十一)AVL 树
AVL 树 是最早时期发明的自平衡二叉搜索树之一。是依据它的两位发明者的名称命名。 AVL 树有一个重要的属性,即平衡因子(Balance Factor),平衡因子 == 某个节点的左右子树高度差。
数据结构与算法-基础(十)平衡二叉搜索树
二叉搜索树的特性-节点的左侧部分比它小,右侧部分比它大,使得二叉搜索树在查找节点有二分法的效果,也提高了它的添加和删除处理,毕竟添加和删除也是先查找位置,然后再处理。
数据结构与算法-基础(九)二叉搜索树
如果使用线性表存放 n 个元素时,时间复杂度是 O(n)。如果使用二分法搜索,可以降低时间复杂度,为 O(logn),但是添加和删除的平均时间复杂度是 O(n)。但是二叉搜索树是 O(logn)
数据结构与算法-基础(八)遍历二叉树
遍历二叉树是二叉树的基础操作,后面更多逻辑的其他二叉树要经常应用到遍历方式。其次,可以通过遍历二叉树来理解递归思想和对队列的应用。
数据结构与算法-基础(七)完全二叉树
完全二叉树是在结构上是非常清晰的。那么判断二叉树是否是完全二叉树,就可以用队列遍历完成判断。判断二叉树的高度也可以用队列来处理。也算是给队列增加了一些新奇的应用场景。
数据结构与算法-基础(六)二叉树基础
二叉树是树结构中最基础,也是最重要的结构。由二叉树衍生出多种不同类型的二叉树,当学习完二叉树的不同衍生结构后,会发现,都不能逃离二叉树的定义和特定。
数据结构与算法-基础(五)队列(Qeque)
队列是一种线性表,添加或者删除操作只能在头尾两端进行,并且限制只能从队尾添加元素,即入队(enQueue) ,也只能从队头移除元素,即出队(deQueue) 。所以队列的特点可以总结为 FIFO。
数据结构与算法-基础(四)栈(Stack)
前几期探究过动态数组或者链表后,接下来的栈就可以使用线性表的结构再次封装实现。在实现栈 的时候发现,在线性表的基础上,实现起来更简单。
数据结构与算法-基础(三)- 循环链表(补充)
上一期整体探讨了一下单向链表。在这基础上补充两个点,分别是单向循环链表和双向循环链表。从字面中可以看出是将链表形成个环结构,区别在于这个环是只能一个方向还是两个方向循环。
数据结构与算法-基础(二)单向链表
动态数组有个明显的缺点,就是有可能造成内存空间的大量浪费。那么有什么办法可以做到用多少就给多少呢?这时,咱接着探究一下链表,看看能不能解决这个疑问。
数据结构与算法-基础(一)动态数组
日常开发中,会经常创建数组,并使用数组的添加、删除等方法。现在就是要以数据结构的方式,来探究一下这些方法是怎么实现的。 本文结构先总结 Array 常用的 API,接下来由简单到复杂,由基础到组合
数据结构与算法-排序(十)桶排序(Bucket Sort)
桶排序和基数排序类似,相当于基数排序的另外一种逻辑。它是将取值范围当做创建桶的数量,桶的长度就是序列的大小。通过处理比较元素的数值,把元素放在桶的特定位置,然后遍历桶,就可以得到有序的序列
数据结构与算法-排序(九)基数排序(Radix Sort)
基数排序是进行整数序列的排序,它是将整数从个位开始,直到最大数的最后一位截止,每一个进位(比如个位、十位、百位)的数进行排序比较。 每个进位做的排序比较是用计数排序的方式处理,所以基数排序离不开计数
数据结构与算法-排序(八)计数排序(Counting Sort)
计数排序本质就是统计不同元素出现的次数,然后将元素依次从小到大放置,每个元素看统计的次数,就紧挨着放置几个同样的元素。
数据结构与算法-排序(七)希尔排序(Shell Sort)
看希尔排序需要先想象出一个二维的矩阵,在这个矩阵中,有多少列数据全看步长(一定的规则得到)。处理完之后,就再接着用另一个步长组成矩阵处理。直到步长全部使用完。
数据结构与算法-排序(六)堆排序(Heap Sort)
堆排序需要用到一种数据结构,大顶堆。大顶堆是一种二叉树结构,本质是父节点的数大于它的左右子节点的数,左右子节点的大小顺序不限制,也就是根节点是最大的值。
数据结构与算法-排序(五)快速排序(Quick Sort)
快速排序和归并排序有一些相似的地方,就是在中间位置拆分成两部分,分别做处理。 这里也是用到递归思想,但是与归并排序的先拆分再排序处理的思想不同,快速排序是先处理排序,然后再拆分。
下一页