
基础数据结构
文章平均质量分 87
讲解基础的数据结构以及实战
Undoom
个人网站:https://deepseek.hyk52syx.club/
阿里云开发者社区专家博主,华为云享专家 ,腾讯云创作之星,支付宝开发者社区优秀季度创作博主,支付宝社区问答官,阿里云社区问答官,腾讯云TDP -先锋会员,华为云初级校园大使,腾讯云TDP-产品KOL,极星会KOL,2024博客之星NO.20
展开
-
手撕初阶数据结构之---排序
排序:所谓排序,就是使⼀串记录,按照其中的某个或某些关键字的⼤⼩,递增或递减的排列起来的操作。常见的排序算法直接插入排序的时间复杂度是O(N^2)这个是最差的情况下,就是大的在前面,小的在后面希尔排序就是直接插入排序的优化版本将时间复杂度优化为O(N^1.3)时间选择排序是雷打不动的O(N^2)堆排序是O(N logN)冒泡排序是O(N^2)在数组有序的情况下我们能优化成O(N),但是这种情况很少见。原创 2024-08-15 10:02:47 · 2368 阅读 · 99 评论 -
手撕数据结构---栈和队列的概念以及实现
栈:⼀种特殊的线性表,其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶,另⼀端称为栈底。概念:只允许在⼀端进⾏插⼊数据操作,在另⼀端进⾏删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)队列中的每一个数据是通过一个节点保存的,节点和节点之间是通过指针链接的,压栈:栈的插⼊操作叫做进栈/压栈/⼊栈,⼊数据在栈顶。队列的底层是链表,链表是由一个一个的节点组成。⼊队列:进⾏插⼊操作的⼀端称为队尾。出队列:进⾏删除操作的⼀端称为队头。原创 2024-07-30 09:56:19 · 3461 阅读 · 74 评论 -
手撕数据结构---------顺序表和链表
定义之前已经知道数组大小的数组定义之前不知道数组大小的数组---动态内存管理int *arr---定义一个指针sequence:流畅的 List:表那么对顺序表的定义1.已知顺序表的大小:静态顺序表:int size;//顺序表中有效数据的个数如果我们一开始不知道顺序表的大小的话,在后面代码生成的时候申请了大小,这就是动态顺序表对于顺序表,我们不一定是整型数组,可能是字符数组,那么这个时候我们就要用到typedef了,将数据类型重命名,因为这样会很方便的,如果一个个改的话就很麻烦。原创 2024-07-25 19:09:06 · 4952 阅读 · 67 评论 -
手撕数据结构之二叉树
向上调整:节点数量多的层*调整次数多节点数量少的层*调整的次数少向下调整:节点数量多的层*调整次数少节点数量少的层*调整次数多建议是使用向下调整算法进行建堆建堆的时间复杂度是O(N)下面的调整得物时间复杂度是O(N*logN)那么堆排序的时间复杂度是O(N*logN)TOP-K问题TOP-K问题:即求数据结合中前K个最⼤的元素或者最⼩的元素,⼀般情况下数据量都⽐较⼤。⽐如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。原创 2024-08-06 09:33:15 · 2989 阅读 · 105 评论 -
数据结构----算法复杂度
数据是杂乱无章的,我们要借助结构将数据管理起来。原创 2024-07-22 14:38:30 · 2155 阅读 · 54 评论