
02 数据结构 初阶
文章平均质量分 70
初步了解数据结构
且听吟风°
扣:903199567
展开
-
01 数据结构前言
数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合算法(Algorithm): 就是定义良好的计算过程,他取一个或一组的值输入,并产生一个或一组值作为输出,简单来说算法就是一系列的计算步骤,用来将输入数据转化为输出结果。原创 2024-01-14 09:21:22 · 479 阅读 · 0 评论 -
02 时间复杂度和空间复杂度
时间复杂度的定义: 在计算机科学中,算法的时间复杂度是一个函数(数学),描述了算法的运行时间,一个算法消耗的时间从理论上,是算不出来的,只有在机器上跑起来,才能知道,但每次上机测试很麻烦,所以有了时间复杂度的分析方式,一个算法所花费的时间与其中语句的执行次数成正比例,当影响执行次数的变量特别大时,常数的影响微乎其微,时间复杂度只描述最高阶,同样,数量越大,1次方的影响和二次方比越来越小,常数系数也可以省略。空间复杂度不是程序占用了多少bytes的空间,算的是变量的个数,也用大O渐进法表示。原创 2024-01-14 17:41:59 · 1454 阅读 · 0 评论 -
03 顺序表
线性表(Linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串。。。线性表在逻辑上时线性结构,是连续的一条直线。但在物理结构上不一定是连续的,存储时,通常以数组和链式结构的形式存储。原创 2024-01-16 00:52:48 · 999 阅读 · 0 评论 -
04 单链表
链表头到入环点的距离为L,环型的长度是C,慢指针入环后走的距离是N,慢指针走的总路程L + N,因为不存在会错过的情况,所以快指针必然在一圈内追上慢指针。这种情况就会有可能一直追不上,还是上面的N,N+3减去N+1,走3步距离每次缩小两步,当之间的距离只有一步时,如果不是快指针每走一步就判断的话就会错过。当链表是有环的,快指针先进环,慢指针后进环。第二个方法:和上面思路一样,用一个快慢指针,让两个指针拉开差距,返回第k个节点就让快指针走几步,然后同时移动两个指针,直到快指针为空返回慢指针的值。原创 2024-01-21 20:44:46 · 1064 阅读 · 0 评论 -
05 双向链表
1.双向链表2.实现3.OJ题4.链表和顺序表对比。原创 2024-01-23 00:25:44 · 809 阅读 · 0 评论 -
06 栈
1.栈2.实现3.OJ题。原创 2024-01-23 21:00:58 · 468 阅读 · 0 评论 -
07 队列
1.队列2.实现3.OJ题。原创 2024-01-25 01:00:01 · 409 阅读 · 0 评论 -
08 二叉树顺序结构
第三题在具有2n个结点的完全二叉树中,叶子结点个数为n个,因为二叉树中叶子结点比度为2的结点(有2个分叉)的个数多1,完全二叉树中度为1的结点要么为0,要么为1,因此叶子结点数为n个,度为1的结点为1个,度为2的结点为n-1个。推的删除会将堆顶数据和最后一个交换,这时,将向下调整的范围减少1个,最后一个数据排出堆外,剩下的数据中选出次小的和当前堆的最后一个交换,再缩小堆范围。满二叉树:一个二叉树,如果每一层的结点数都达到最大值,则这个二叉树就是满二叉树,如果一个二叉树的层数为k,且结点总数是2。原创 2024-01-28 21:45:11 · 1031 阅读 · 0 评论 -
09 二叉树链式结构
1.链式结构的创建2.遍历的方式3.结点数的计算4.高度的计算5.第k层的节点个数6.查找值7.判断完全二叉树8,销毁9.OJ题。原创 2024-02-01 21:19:51 · 789 阅读 · 0 评论 -
10 排序的概念
1.排序的概念和运用2.排序的分类。原创 2024-02-02 22:44:28 · 226 阅读 · 0 评论 -
11 插入排序和希尔排序
1.元素集合越接近有序,直接插入排序算法的时间效率越高2.时间复杂度:最坏O(N。原创 2024-02-03 16:28:23 · 1239 阅读 · 0 评论 -
12 选择排序和堆排序
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完需要注意最大的数可能刚好在最小的数要换过去的位置,这时,数值已经交换,已经不是原来的数,需要更新最大值的下标。原创 2024-02-04 15:57:59 · 282 阅读 · 0 评论 -
13 冒泡排序和快速排序
cur不断向后走,当cur处的值小于key处值时,pre先++,pre和cur的值交换,如果是自身就不用交换。以1的方法举例,R先走,就是R遇到L,有两种情况,第一种,L有比key大的值,这时R遇到L肯定是比key大的值交换。上面的过程,首先6是key值,R小人往左走,找到比6小的数字停下来。key为初始设定的坑位的值,R先走,遇到比key小的数将该数填到坑的位置,设定当前位置为坑。对于有序的数据快速排序的效率是很低的,因为key值每次取的是最值,划分出的区间作用很小,每次只能排一个数。原创 2024-02-07 10:16:55 · 824 阅读 · 0 评论 -
14 归并排序和其他排序
1.归并排序2.计数排序。原创 2024-02-07 22:23:40 · 737 阅读 · 0 评论 -
15 排序总结
稳定性的应用场景,比如考试成绩,对于成绩相等的按交卷顺序排序选拔,这个时候相等数据的先后形就有必要了。如果总成绩相等,按语文成绩的高低排序,可以先按语文成绩进行一次排序,然后对总成绩进行一次稳定排序。计数排序: 时间: O(MAX(N,范围)) 空间: O(范围) 稳定性: 稳定。排序的稳定性指原序列中相等的数经过排序后,原来的顺序不会发生改变。排序后黑5仍然在红5前面。原创 2024-02-07 23:52:06 · 252 阅读 · 0 评论 -
16 贪吃蛇
windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外,同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮助应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序,所以便称之为 Application Programming Interface,简称API函数。WIN32 API也就是Microsoft Windows32位平台的应用程序编程接口。原创 2024-02-13 20:45:28 · 862 阅读 · 0 评论 -
17 外排序
方便演示外排序,手动生成100的数据量,命名为data.txt文件每10个数据读到内存中一排序,可以用快速排序,排完序写到新文件,sub+编号.txt,不断循环对这些小文件归并汇总并生成新文件。假如有10亿个整形数据在磁盘中,要对它排序,内存中只有1G空间,10亿需要4G。可以将这个文件划分成好几块1G大小的排序,再对这些1G文件两两归并,得到4G的排序后文件。排序分为内排序和外排序,内排序是在内存中的排序。外排序指在磁盘中文件的排序,因为在磁盘中,不能进行下标访问,归并排序经常用于磁盘中文件的排序。原创 2024-02-14 09:47:19 · 252 阅读 · 0 评论 -
数据结构 总结
原创 2024-02-08 00:40:44 · 126 阅读 · 0 评论