首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法
涓涓清泉
创建于2024-06-23
订阅专栏
数据机构与算法专题
暂无订阅
共17篇文章
创建于2024-06-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
数据结构与算法之十大经典排序
本文主要介绍一下算法中最基础的排序问题,尽可能按照从入门到深入的顺序介绍,也就是博主自身学习的顺序,注意本文均在升序且有些排序仅满足非负整数的情况下进行讨论。 比较类算法:这种算法主要是比较元素间的相对大小次序来进行排序的,由于其时间复杂度较高,因此也称为非线性时间比较类排序。…
七日打卡——数据结构与算法之红黑树
红黑树是基于AVL树(平衡二叉树)的基础上提出一种新的树结构,并且它与2-3树可以说是等价的。 因此在介绍红黑树之前,先把AVL树和2-3树与大家梳理一下。 同时,本文主要是想介绍红黑树的基本原理与构建规则,其底层实现是十分庞大且复杂的,因此我们更多的关注点在于理解它的构建并知…
七日打卡——数据结构与算法之KMP算法
KMP算法是博主大学就接触过的线性时间字符串查找算法, 但是当时并没有特别的理解KMP算法,最近博主无意间看到了KMP算法,于是就拿来,嘿嘿嘿·······分享给大家。 KMP算法是一种字符串查找的算法,用于在字符串S中查找出词W,以下是维基百科的KMP定义。 给定一个字符串S…
数据结构与算法之Morris算法
关乎二叉树遍历,最常见无外乎两种方法,一种递归(Recursion),一种迭代(BFS),两种办法都使用了栈这一数据结构,因此空间复杂度都是O(n)。然后嘞,小泉无意间看到了一种不使用栈的方法,并且使得空间复杂度降为了O(1)。 对于二叉树的遍历,其过程可以理解为如果无左子节点…
带你手撸红黑树,小泉憋大招了——数据结构与算法系列
原来只是在从应用以及简单的思想理解方面给大家介绍了红黑树的创建与使用。这段时间就想要深入研究一下红黑树,主要参考了维基百科内容,加上自己的一些理解与学习,尝试真正的实现这一数据结构。今天小泉就带大家手撸一下红黑树吧!废话不多说,我们的红黑树之旅即将启程。 老规矩,还是要跟大家说…
数据结构与算法之堆
最近很久没更新了,一方面是手头活有点多了,有些忙了,业务代码得走起了,另一方面,生活上总有些小事情打断了节奏。总结下来,对,就是我太懒了。我承认,我不配,呜呜呜。 所以我来更新了。。。。。。 本期主讲的数据结构,他与栈经常成双入对,他就是堆,栈的好兄弟。 基本就是,在完全二叉树…
七日打卡——数据结构与算法之摩尔投票算法
摩尔算法是很久之前看到的一种算法,主要用于求解众数,求解众数不是很难,但是使用常数级空间确实比较难的,可以说是一种很巧妙的算法,因此分享给大家。 摩尔投票算法(Boyer–Moore majority vote algorithm),以下是摩尔投票算法在维基百科上的定义。 已知…
数据结构与算法之拓扑排序
今天忽然想起了去年华为软挑的题目,与图论有关,其中也涉及到了一部分拓扑排序的知识,然后本来想写一些BFS和DFS总结的一些套路,忽然觉得不如直接拓扑排序讲解一下,也是甚好,那么今天就介绍一下拓扑排序吧。 以下是拓扑排序在维基百科上的定义。 从拓扑排序的定义可以知晓,这一算法的作…
数据结构与算法之哈希表
该系列为博主自己学习记录数据结构与算法的实现。 本篇文章主要介绍哈希表(Hash Table,又称散列表)的原理、部分源码、以及练习实现。 该部分主要用于介绍哈希表相关概念与原理。 1. 哈希表定义 哈希表,又称散列表,英文名为Hash Table。实质上是一种对数组进行了扩展…
七日打卡——数据结构与算法之贪心算法
贪心算法,又称为贪婪算法(Greedy Algorithm),以下是贪心算法在维基百科上的定义。 从上面的定义可以知晓,贪心算法与回溯算法、动态规划一样都是需要进行分步决策。 并且根据贪心算法的定义,其解决问题是在每一步决策时,都选择该步最优的选择(即局部最优),希望可以得到全…
数据结构与算法之跳跃表
本文先介绍基本的两种数据存储结构,并着重介绍了其中的链表以及在这两种数据结构基础上优化所提出新的数据结构——跳跃表。内容和代码部分参考于跳跃表。 对于一组有序的整型数据,首先能想到相对简单的数据结构就是数组与链表结构。下面就从对有序数据的基础操作进行讲解。 数组是最常见的存储有…
数据结构与算法之字典树
字典树(Trie树)这一数据结构是不太常见但是十分好用而一种数据结构,博主也就是最近一段时间做了几道字节的题目才了解到字典树这一数据结构。并将自己的学习内容跟大家分享。 首先,何为字典树(Trie树)?顾名思义,就是在查询目标时,像字典一样按照一定排列顺序标准和步骤访问树的节点…
数据结构与算法之平衡二叉树
平衡二叉树,全名平衡二叉搜索树,因为其提出者为Adelse_Velskil和Landis,所以又名为AVL树。 说到二叉搜索树,就不得不提一提它的性质,左子树的节点大小都要比根节点小,右子树的节点大小都要比根节点大,同样左子树与右子树也都是二叉搜索树。这就使得一般情况下,二叉搜…
数据结构与算法之动态规划
动态规划即Dynamic Programming,简称DP,无论是在日常生活还是在工程问题中都有着十分广泛的应用,比如最短路径问题,购物满减问题等等。 动态规划也是算法中较难的一个模块,而其中最大的问题在于如何确定状态以及状态转移方程,“状态”这一词在后面说明。 本文将从递归开…
数据结构与算法之2-3树
2-3树是在原来AVL树的基础上提出一种新的树结构,我们都知道二叉搜索树可以加速查询操作,而AVL树在二叉搜索树的基础上限制了高度差(树高 <= 1),从而使得AVL高度平衡。但是根据前面数据结构与算法之平衡二叉树所介绍,AVL树在插入、删除操作方面会引起结构的变化,…
数据结构与算法之二分查找三模板
二分查找是分治法的最基本的一种,其应用场景多为在有序数组内找寻到目标元素,将区间一分为二,与中值进行比较,如若与区间中值不等,则所查找目标元素仅需前往一分为二的相应的区间进行查找即可,重复上述步骤直至找到或者满足查找终止条件。 本文框架主要来自LeetCode探索之二分查找,并…
数据结构与算法之回溯算法
好久不见,十分想念,因为一些事情,九月份耽搁了博客的更新,后续小泉的算法之路和安卓之路即将继续启程。今天小泉想跟大家介绍的是回溯算法。 以下是回溯法在维基百科上的定义。 从上面的定义可以知晓,回溯法其实遍历了所有解决问题的可能性。 并且根据回溯法的定义,回溯算法,其解决问题是按…