![](https://i-blog.csdnimg.cn/direct/441f96c804bc46db9691bb30b7a5d8ad.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 91
数据结构与算法(由初阶到进阶)
秋风起,再归来~
大二在读,初识编程~全栈领域新星创作者,分享自己学习心得。欢迎各位大佬来到我的博客指导!编程之路,道阻且长,行则将至!未来我们一起加油!
展开
-
八大排序之——计数排序全方位剖析!(小白也能轻松看懂!)
计数排序(Counting Sort)是一种非比较排序算法,它的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。原创 2024-07-11 12:39:43 · 1423 阅读 · 53 评论 -
八大排序之——冒泡排序全方位剖析!(小白也能轻松看懂!)
冒泡排序是最基础的排序算法之一,通过相邻元素的比较和交换,逐渐将最大(或最小)的元素冒泡到数列的一端。尽管冒泡排序的效率相对较低,但它的实现简单易懂,是理解排序算法的入门之选。冒泡排序适用于小规模数据和部分排序数据的情况,同时也常用于教学和理解排序算法的基本原理。然而,在实际应用中,对于大规模数据集,我们更倾向于选择时间复杂度较低的排序算法,如快速排序、归并排序和堆排序等。这些算法能够在更短的时间内完成排序任务,提高程序的执行效率。因此,在实际开发中,我们需要根据具体情况选择合适的排序算法。原创 2024-07-10 17:25:27 · 1575 阅读 · 66 评论 -
【数据结构与算法】之堆的应用——堆排序及Top_K问题!
向下调整建小堆,再将堆顶元素与堆的最后一个元素交换,那么数组中最小的那个元素就到最后面去了,最后一个数有序后,那我们就不再把它看作堆的元素了,最后再在堆顶进行向下调整保证小堆不变。对一个无序的数组,因为数组中的元素是连续的,那我们就可以将数组中的元素进行。2、再将后N-K个数据分别和堆顶数据比较,比堆顶数据大就将堆顶数据覆盖。4、将后N-K个数据比较完后,小堆里面的数据就是最大的前K个。假设我们要对一个数组中的元素进行降序,那我们就要先将其进行。1、我们先将全部数据的前K个建成小堆。我们下期不见不散~~原创 2024-05-25 21:08:18 · 1889 阅读 · 62 评论 -
【数据结构与算法】之堆及其实现!
},把它的所有元素按完全二叉树的顺序存储方式存储 在一个一维数组中,并满足: 且 = 且 >= ) i = 0,1, 2…将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。下面我们给出一个数组,这个数组逻辑上可以看做一颗完全二叉树,但是还不是一个堆,现在我们通过算 法,把它构建成一个堆。这里我们从倒数的第一个非叶子节点的 子树开始调整,一直调整到根节点的树,就可以调整成堆。删除堆是删除堆顶的数据,将堆顶的数据根最后一个数据一换,然后删除数组最后一个数据,再进行向下调 整算法。原创 2024-05-24 15:32:09 · 1196 阅读 · 62 评论 -
【数据结构与算法】之树与二叉树!
树的高度或深度。原创 2024-05-24 15:02:19 · 1327 阅读 · 97 评论 -
【数据结构与算法】之四道关于栈和队列的经典题型!
在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。// 返回 false,队列已满。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 False。原创 2024-05-13 16:51:46 · 1057 阅读 · 81 评论 -
【数据结构与算法】之详解栈与队列及其实现!
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出。栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数 组头上出数据,效率会比较低。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。原创 2024-05-11 18:32:02 · 1165 阅读 · 99 评论 -
【数据结构与算法】之五道链表进阶面试题详解!
的输入如下(你设计的程序。原创 2024-05-06 21:28:55 · 2738 阅读 · 158 评论 -
【数据结构与算法】之双向链表及其实现!
。原创 2024-04-16 22:43:46 · 2011 阅读 · 114 评论 -
【数据结构与算法】之8道顺序表与链表典型编程题心决!
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0 1,3,0, 4。从编号为 1 的人开始报数,报到 m 的人离开。新链表是通过拼接给定的两个链表的所有节点组成的。元素的顺序可以改变。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。需要合并 [1,2,3] 和 [2,5,6]。原创 2024-04-12 23:04:14 · 2450 阅读 · 86 评论 -
【数据结构与算法】之单链表及其实现!
3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到 200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。原创 2024-03-10 13:48:08 · 925 阅读 · 119 评论 -
【数据结构与算法】之顺序表及其实现!
目录编辑1. 顺序表的概念及结构2. 接口的实现2.1 顺序表的初始化2.2 检查顺序表容量是否已满2.3 顺序表的尾插编辑2.4 顺序表的尾删2.5 顺序表的头插2.6 顺序表的头删2.7 顺序表在pos位置插入2.8 顺序表在pos位置删除2.9 顺序表的查找2.10 顺序表的销毁2.11 顺序表的打印 3. 我在实现顺序表时的测试代码4. 完结散花顺序表是用一段物理地址连续的存储单元以此存储数据的线性结构,一般情况下用数组存储。在数组上完成数据的增删查改~静态顺序表只适用于确定知道需要存多少数原创 2024-03-06 21:13:32 · 1801 阅读 · 183 评论 -
【数据结构与算法】之详解算法的时间复杂度和空间复杂度!
即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度。原创 2024-03-03 20:21:39 · 1822 阅读 · 77 评论