
数据结构初阶
文章平均质量分 96
Zi_z
知行合一
展开
-
归并排序 - 递归与非递归实现
归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。原创 2022-09-17 20:35:31 · 993 阅读 · 3 评论 -
快速排序的三种单趟排序思想的实现与优化 - 递归与非递归
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,大厂也喜欢考,所以快排必须理解并掌握。快速排序yyds,它的三种递归和非递归的思想都要理解并可以手撕其中一种思想的代码实现。原创 2022-09-14 23:37:03 · 835 阅读 · 0 评论 -
插入、希尔与选择排序
元素集合越接近有序,直接插入排序算法的时间效率越高时间复杂度:O(N^2)空间复杂度:O(1),它是一种稳定的排序算法稳定性:稳定希尔排序是对直接插入排序的优化。当gap > 1时都是预排序,目的是让数组更接近于有序。当gap == 1时,数组已经接近有序的了,这样就会很快。原创 2022-09-12 20:57:06 · 329 阅读 · 1 评论 -
二叉树正传 - 二叉树的基本操作及构建
二叉树前传。本篇会着重介绍二叉树的操作,了解二叉树的前中后序遍历以及链式二叉树的构建。二叉树的概念以及基础操作到此就结束了,二叉树的递归操作都是基于这几种遍历的变形,所以遍历二叉树要十分熟练,以及要想清楚层层递归的大概逻辑。相较于前面的链表啥的难多了感觉。原创 2022-09-09 18:33:20 · 1092 阅读 · 2 评论 -
堆的应用:堆排序及TopK问题
前一篇文章介绍了堆的概念及结构和堆的实现,堆的物理结构是数组实现的,但是要把它的逻辑结构想象成完全二叉树,并且了解到堆的增删数据后还要保持其原来的结构,因此需要采用向上和向下调整算法,最多调整该二叉树的高度(logN )次。堆的的本质是方便找出次大或者次小的数,因此本文来介绍第一次接触到的时间复杂度为O(N*logN)的排序:堆排,以及利用堆排思想来解决TopK问题。即求出一组数据中前K个最大的元素或者最小的元素,一般情况下数据量都比较大。原创 2022-09-03 16:37:58 · 821 阅读 · 1 评论 -
二叉树前传 - 树与堆的概念结构及堆的实现
前面学习过的顺序表链表等都是线性表(结构),逻辑结构上数据是诶个存储的,呈现出一条线性。而今天要了解的树就不再是一种线性结构了。原创 2022-08-18 00:42:21 · 600 阅读 · 17 评论 -
我幼儿园的弟看了都直呼简单的【栈和队列】
栈:一种特殊的线性表(在逻辑上是连续存储的,物理上不一定连续),其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。例如上面在栈中的数据只能先依次拿出栈顶的数据,出栈的顺序依此是4,3,2,1,入栈时是1,2,3,4,所以后进先出也可以理解为先进后出。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。栈的实现一般可以使用数组或原创 2022-08-14 21:40:06 · 449 阅读 · 6 评论 -
【数据结构】万字链表详解
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。换句话说,分散存储是链表最显著的特征,为了能够保持数据元素间的顺序关系,在创建每个元素的同时都要配备一个指针,用于指向它的后继元素。这样由指针相互连接的数据就具有了线性的关联。链表中的数据有俩个部分组成:一是本身存储的数据信息,二是指向后继元素的指针。这两部分组成数据元素的存储结构称为链表的结点,所有的节点通过指针相互链接就组成了一个链表。可以按需申请和释放不存在扩容的问题。...原创 2022-08-09 18:43:33 · 936 阅读 · 7 评论 -
【数据结构与算法】时空复杂度的计算
数据结构(DataStructure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。简言之就是在内存中管理数据–增删查改数据结构和数据库的区别是什么?这二者都是管理数据,只不过数据库是在磁盘中管理数据–增删查改,而数据结构是在内存中管理数据。磁盘空间很大,内存很小,如果数据量大则在磁盘中用数据库来管理,而数据量小则可以在内存中使用数据结构来管理。它们最重要的区别是磁盘可以不带电永久存储数据,而内存一旦断电数据全部消失,内存只是临时来存放这些数据。...原创 2022-07-29 16:30:45 · 952 阅读 · 1 评论