
数据结构和算法
文章平均质量分 83
例,以实战为线索,逐步深入React开发各个环节,掌握前端常用性能体验优化思路,打造完整前端工作流,提升工程化编码能力和思维能力。
邓富民
你要像欣赏花一样,欣赏你自己
展开
-
【程序员必须掌握哪些算法?】
程序员必须掌握哪些算法?原创 2023-07-17 20:56:03 · 3159 阅读 · 0 评论 -
【经典八大排序】
八大排序细节分析汇总,两万四千字教你学会八大排序!原创 2023-04-14 17:54:23 · 478 阅读 · 52 评论 -
【手撕归并排序】
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。原创 2023-04-09 22:09:18 · 568 阅读 · 28 评论 -
【一图看懂选择排序】——选择排序和堆排序
直接选择排序:在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素原创 2023-04-03 21:05:22 · 432 阅读 · 19 评论 -
【深入理解二叉树OJ题】
二叉树OJ题原创 2023-04-01 14:54:37 · 1062 阅读 · 52 评论 -
【TopK问题】——用堆实现
topk问题:找出n个数里面最大/最小的前k个问题。 比如:未央区排名前10的泡馍,西安交通大学王者荣耀排名前10的韩信,全国排名前10的李白。等等问题都是topk问题, 需要注意: 找最大的前k个,建立k个数的小堆 找最小的前k个,建立k个数的大堆假如要从十万个数字里面找出前十个最大的1.建立一个节点个数为k的小堆,此时堆顶元素是最小的元素2.进堆的条件是:只要比堆顶元素大就有机会进堆3.进堆之后,就再向下调整即可。(原来堆顶的元素就已经被替换掉了,堆中第二小的元素进行了替换)原创 2023-03-25 22:49:31 · 1294 阅读 · 53 评论 -
【数据结构——堆】堆的基本功能和堆排序
堆的概念及结构如果有一个关键码的集合K = { , , ,…, },把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足: = ) i = 0,1,2…,则称为小堆(或大堆)。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。堆的性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。原创 2023-03-25 00:26:20 · 3299 阅读 · 39 评论 -
【手撕插入排序和希尔排序】
把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。原创 2023-03-17 19:58:58 · 1162 阅读 · 76 评论 -
【考试必考点——哈夫曼树】(贪心算法实现)
赫夫曼树,别名“哈夫曼树”、“最优树”以及“最优二叉树”。学习哈夫曼树之前,首先要了解几个名词。哈夫曼树相关的几个名词路径:在一棵树中,一个结点到另一个结点之间的通路,称为路径。图 1 中,从根结点到结点 a 之间的通路就是一条路径。路径长度:在一条路径中,每经过一个结点,路径长度都要加 1 。例如在一棵树中,规定根结点所在层数为1层,那么从根结点到第 i 层结点的路径长度为 i - 1 。图 1 中从根结点到结点 c 的路径长度为 3。结点的权:给每一个结点赋予一个新的数值,被称为这个结点的权原创 2023-03-14 16:08:34 · 970 阅读 · 11 评论 -
【Leetcode——排序的循环链表】
Leetcode刷题——排序的循环链表,两种思路供参考原创 2023-03-13 22:03:57 · 960 阅读 · 10 评论 -
【二叉树前序,中序,后序遍历和层序遍历】
学习二叉树结构,最简单的方式就是遍历。所谓二叉树遍历(Traversal)是按照某种特定的规则,依次对二叉树中的节点进行相应的操作,并且每个节点只操作一次。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,也是二叉树上进行其它运算的基础。原创 2023-03-12 10:11:23 · 714 阅读 · 42 评论 -
【数据结构之二叉树】——二叉树的概念及结构,特殊的二叉树和二叉树性质
1. 若规定根节点的层数为1,则一棵非空二叉树的第n层上最多有2^(n-1) 个结点.2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是2^h - 1 . 3. 若规定根节点的层数为1,具有n个结点的满二叉树的最大深度为h = log2(2^n-1)4. 对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为 n2,则有 n0=n2 +1原创 2023-03-11 20:12:32 · 1738 阅读 · 46 评论 -
【数据结构之树】——什么是树,树的特点,树的相关概念和表示方法以及在实际的应用。
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1原创 2023-03-11 10:48:22 · 2353 阅读 · 14 评论 -
【LeetCode——排序链表】
LeetCode——排序链表原创 2023-03-08 17:10:57 · 1747 阅读 · 48 评论 -
【Leetcode——重排链表】
LeetCode——重排链表原创 2023-03-06 21:58:49 · 2114 阅读 · 21 评论 -
【使用两个栈实现队列】
使用两个栈实现队列的功能原创 2023-03-01 17:17:00 · 1795 阅读 · 29 评论 -
【使用两个队列实现栈】
使用两个队列实现栈的操作原创 2023-02-28 12:58:31 · 2756 阅读 · 29 评论 -
【数据结构】——环形队列
数据结构环形队列原创 2023-02-20 21:06:25 · 5139 阅读 · 41 评论 -
【数据结构】——队列
数据结构之队列的操作实现原创 2023-02-19 11:54:59 · 1362 阅读 · 43 评论 -
【数据结构】————栈
实现数据结构的特殊线性表————栈原创 2023-02-19 11:08:08 · 2329 阅读 · 30 评论 -
【双向带头循环链表】
双向带头循环链表:链表中结构最复杂的链表。原创 2023-02-05 16:16:17 · 870 阅读 · 12 评论 -
【链表->环形链表】
链表之环形链表,有关环形链表的相关知识原创 2023-02-02 21:37:48 · 1779 阅读 · 18 评论 -
【链表之单链表】
详细介绍链表中的最简单的结构---单链表,单链表是整个链表的类型中最重要的结构之一。原创 2023-02-01 20:56:06 · 1182 阅读 · 7 评论 -
【顺序表概念+优缺点+接口函数实现】
顺序表的概念以及优缺点,还有顺序表相关接口函数的实现,比如顺序表的头插头删,尾插尾删,在某个位置插入元素,在某个位置删除元素,顺序表的初始化,打印,销毁等等原创 2023-01-29 20:46:30 · 450 阅读 · 4 评论 -
【时间复杂度和空间复杂度】
时间复杂度和空间复杂度分析原创 2023-01-26 11:17:48 · 670 阅读 · 15 评论 -
[LeetCode算法->双指针]
双指针算法详配套题目讲解原创 2023-01-11 23:39:08 · 1280 阅读 · 5 评论 -
【LeetCode算法-->折半查找】
算法刷题DAY1:折半查找原创 2023-01-07 23:39:10 · 806 阅读 · 3 评论 -
【BF算法】
BF算法核心原创 2022-12-28 13:45:38 · 2084 阅读 · 12 评论 -
【KMP算法】
KMP算法核心精讲原创 2022-12-29 10:01:25 · 759 阅读 · 12 评论