
数据结构
文章平均质量分 94
暴躁小程序猿
坚持每天分享自己学习算法的心得,如果感觉有学到东西就给博主点点关注支持一下~
展开
-
数据结构---各类排序算法详解
本篇博客针对排序的算法首先分为四大类:插入排序,选择排序,交换排序,归并排序,对每一类排序的思想都进行了说明,同时每一类排序下又细化出很多排序,如直接插入排序,希尔排序,快速排序等等,这些算法都有动图演示和画图思路详解,还附有每种算法的源代码实现,最重要的知识点快速排序的非递归实现和归并排序的非递归实现放在最后面详细讲解,有了前面各种算法思想的铺垫对于后面实现非递归也有一定的帮助,希望可以帮助到大家~ 接下来会持续跟新博客,分享自己的心得,欢迎大家交流~原创 2022-12-16 17:52:16 · 1815 阅读 · 31 评论 -
万字详解数据结构——树
本篇博客涵盖了树的基本概念,二叉树的初阶知识,包括完全二叉树,满二叉树,二叉树的实现,二叉树的四种遍历,二叉树的顺序实现和二叉树的链式实现,同时还有堆的相关知识,大小堆的实现,向上调整,向下调整,topK问题等等,希望对大家有所帮助,欢迎大家交流~原创 2022-11-28 11:01:53 · 1407 阅读 · 27 评论 -
分分钟让你学会栈和队列
我们之前学习了线性表中的顺序表和链表,链表具体学习了单链表和带头双向循环列表,链表如果细分的话可以分为8种,我们就不一一赘述,今天我们要学习的是线性表中另外两种数据结构——栈和队列,这两个数据结构很有特点,每一个都有自己独特的属性,但是两者也可以互相实现,即可以用队列实现栈,用栈实现队列,我们就进入今天的学习分享。栈的概念:栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。原创 2022-10-31 15:10:35 · 1071 阅读 · 5 评论 -
三分钟带你手撕带头双向循环链表
我们从进入数据结构模块开始,首先学习了顺序表,顺序表其实就是数组,它需要一组连续的物理空间来存储数据,所以它的缺点很明确,但是优点就是查找起来很方便,可以根据下标直接访问,然后我们学习了单链表,单链表就弥补了顺序表必须是连续物理空间的缺点,它的特点是不需要连续的空间,每个结点通过指针来连接,但是它的缺点也很明显就是查找起来很麻烦,如果想要在指定位置插入数据,或者头插等功能不容易找到对应的位置,往往需要设置一个或多个指针来达到目的,所以我们今天来讲一下双向链表。原创 2022-10-26 09:05:46 · 1143 阅读 · 38 评论 -
三分钟让你掌握数据结构——单链表
上一篇博客讲了什么是顺序表,顺序表的增删改查等基本操作功能,但是顺序表有以下缺点:1.中间/头部的插入删除,时间复杂度为O(N)2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间如何解决这些缺点呢?我们就要讲到链表了。原创 2022-10-22 15:12:44 · 809 阅读 · 4 评论 -
三分钟学会数据结构顺序表
本篇博客涉及顺序表的定义,顺序表的静态实现和动态实现,还有顺序表增删改查等基本操作的实现,让你三分钟掌握数据结构——顺序表原创 2022-10-19 20:34:37 · 1896 阅读 · 25 评论 -
数据结构——三分钟让你学会计算时间复杂度
本篇博客将涉及数据结构中时间复杂度的相关知识,包括什么是时间复杂度,时间复杂度的计算,时间复杂度的对比等,也正式意味着开始进入数据结构板块的学习。算法效率分析有两种:一种是时间效率,一种是空间效率。时间效率被称为时间复杂度,空间效率就是空间复杂度,时间复杂度主要衡量一个算法的运行速度,而空间复杂度主要衡量一个算法所需的额外空间。三分钟让你学会计算时间复杂度!!!原创 2022-10-13 14:30:54 · 3013 阅读 · 11 评论