hshuo
hshuo
全部文章
数据结构
DDD 领域驱动(1)
Docker(12)
Dubbo(11)
Java基础(7)
JUC(11)
Maven(2)
MySQL(6)
Redis(10)
SpringBoot(4)
SpringCloud(9)
SpringCloud Alibaba(3)
微服务常见概念(1)
未归档(2)
杂文(2)
算法(6)
计算机操作系统(8)
计算机网络(7)
设计模式(10)
归档
标签
去牛客网
登录
/
注册
hshuo的博客
多听、多学、多记、多写
全部文章
/ 数据结构
(共10篇)
图
来自专栏
图的表示方法 邻接表法 邻接矩阵法 邻接表法: A:C、D B:C C:A、B、D D:A、C 邻接矩阵法: 图的遍历 广度优先遍历(BFS) 深度优先遍历(DFS) BFS public void bsf(Node node){ Deque<Node> d...
图
最小生成树
最短路径
Kruskal算法
Floyed算法
Dijkstra算法
2022-08-16
1
0
队列
来自专栏
链式队列 由链表实现的队列; 顺序队列 由数组实现的队列; 数组实现可变长度的队列 思路: 使用System.arraycopy()进行扩容、进行数据迁移 记录数组有效长度、不需要记录数组的总容量 ...
队列
2022-05-10
0
378
栈
来自专栏
结构 先进后出; 分类 顺序栈(用数组实现ArrayDeque); 链式栈(由链表实现LinkedDeque)。 时间复杂度O(1) 因为无论是顺序栈还是链式栈,入栈、出栈都只涉及栈顶个别数据...
栈
表达式
单调栈
2022-05-10
1
396
链表
来自专栏
单链表 头结点:用来记录链表的基地址; 尾结点:指向的是一个空地址NULL; 插入、删除 数组在进行插入、删除操作时,为了保持内存数据的连续性,需要做大量的数据搬移,所以时间复杂度是O(n); 链表中插入、删除操作时,并不需要为...
链表
2022-05-04
0
510
数组
来自专栏
为什么数组下标要从0开始,而不是从1开始? 数组下标表示偏移(offset); 例如数组a[],那么a[0]表示偏移0个位置,也就是首地址;a[i]表示偏移i个type_size位置,所以a[i]的内存地址只需要通过:a[i]_address = base_ad...
数组
2022-05-03
1
535
排序算法
来自专栏
排序算法的执行效率 最好情况、最坏情况、平均时间复杂度; 时间复杂度的系数、常数、低阶; 比较次数和交换次数。 排序算法的稳定性 概念: 如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间...
时间复杂度
插入
冒泡
选择
2022-04-29
1
623
归并排序
来自专栏
归并算法 思路: 分解成两个待排序的区间; 使用递归将两个子序列分别排好序; 申请空间,定义两个指针指向两个序列的起始位置,比较指针所指向的元素,选择相对小的元素放入合并空间。 统一格式:...
归并
2022-04-29
1
471
堆排序
来自专栏
堆的概念 底层:用数组存储; 数据结构:完全二叉树(除了最底层,其它层都必须填满,最后一层可以从左到右填满); 如图: 性质:(i对应的是数组的下标) 如果当前节点是i,父节...
堆
2022-04-29
1
534
图(Graph)
来自专栏
图 表示方法: 例如: 邻接表法 A:C、D B:C C:A、B、D D:A、C 邻接矩阵法 ...
拓扑排序
prim算法
迪杰斯特拉算法
kruskal算法
2022-04-02
0
482
快排算法
来自专栏
快排 前提介绍 荷兰国旗问题: 按照某个条件,把数据分成三段;例如【正数、负数、零】或者【小于2、等于2、大于2】; 进一步来讲,也就是快排的一次partition找基准的过程;以中间的作为基准,例如负数、等于2作为基准 例如:7...
快排
2022-03-07
1
702