数据结构初阶
文章平均质量分 97
数据结构基础,包含算法复杂度,顺序表链表,栈和队列以及二叉树,排序算法。
黎相思
别看我,什么都不会!!! Gitee:https://gitee.com/Axurea
展开
-
排序
首先从右向左找出比基准值小的数据,找到后立即放入左边坑中,当前位置变为新的"坑",然后从左向右找出比基准值大的数据,找到后立即放入右边坑中,当前位置变为新的"坑",结束循环后将最开始存储的分界值放入当前的"坑"中,返回当前"坑"下标(即分解值下标)稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i] = r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种算法是稳定的,否则称为不稳定的。原创 2024-07-31 15:56:48 · 787 阅读 · 0 评论 -
二叉树
设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第二层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层风闻树的节点的过程就是层序遍历。排升序的话就要排大堆,这个时候就要知道堆顶数据, 如果堆顶数据是最大的,我要让它跟最后一个位置去交换,这里肯定是最大的放到最后面,排的是升序,拿如果要排降序的话也就意味着最后一个数据是最小的,所以我们要排小堆,因为小堆的堆顶一定是堆里面最小的数据,这是我们的排序算法。链式结构又分为二叉链和三叉链。原创 2024-07-24 18:31:06 · 1317 阅读 · 0 评论 -
栈和队列
我们可以看到这三种数据类型的结构,他们插入数据和删除数据的复杂度上分析的话都是没有问题的,三种结构都是可以的,那么既然时间复杂度上看不出来,就从空间复杂度上看,这么这里的双向链表就更吃内存,因为双向链表里面有两个指针,而单链表里面只有一个指针,双链表比单链表多一个指针,那么在32尾机器上会多4个字节,而在64为操作系统上会多八个字节,所以首先排除双向链表。将所有数据插入之后,此时空间大小capacity是8,因为第一次增容4个字节用完,插5的时候不够,增容2倍,变成8,top是有效元素而个数,1!原创 2024-07-21 19:39:02 · 837 阅读 · 0 评论 -
顺序表和链表
目录1. 线性表2.顺序表2.1 概念于结构2.2 分类2.2.1 静态顺序表2.2.2 动态顺序表2.3 动态顺序表的实现2.3.1 动态顺序表的初始化2.3.2 动态顺序表的销毁2.3.2 动态顺序表的尾插2.3.3 动态顺序表的打印2.3.4 动态顺序表的头插2.3.5 动态顺序表的尾删编辑2.3.6 动态顺序表的头删2.3.8 顺序表指定位置删除2.4 顺序表算法题2.4.1 移除元素2.4.2 删除有序数组中的重复项2.原创 2024-07-19 02:56:58 · 772 阅读 · 0 评论 -
算法复杂度
数据结构(DataStructure)是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学各式各样的数据结构,如:线性表、树、图、哈希等数据结构由两个词组成,数据,结构,数据就像我们打开网页,看到的一些新闻,看到的一些数字这些都可以被称为是数据,那么数据的话需要有一个结构来管理起来,所以就被称为数据结构。原创 2024-07-09 22:49:50 · 1027 阅读 · 0 评论