随笔分类 - 数据结构及算法
数据结构相关
摘要:并发 并,顾名思义,就是首先是多条“路”共同执行。 并发的意思就是一个CPU在某一个 时间 执行多个任务。 例如 写代码,既要查数据库,又要码代码,一直在查数据库和码代码中切换 并行 并行指的一个 多核CPU 在某一 时刻 执行多个任务。 例如 边码代码边下电影,两者并不需要你切换,后台下电影就行。
阅读全文
摘要:二分法(红蓝染色) 思路来源于B站UP主五点七边。 二分法的介绍不用过多,虽然思想简单,但是细节却很多,循环条件中是否含有等于,过程中是left是mid+1还是left=mid,傻傻分不清楚。 初始方法 在二分法之前,都是从左到右或者从右到左逐个遍历,找到最后结果返回,例如,如果想要找到第一个大于等
阅读全文
摘要:二叉树的遍历(非递归) 本文分为以下部分: 前期准备 先序遍历 中序遍历 后序遍历 上次文章中写的是递归版的二叉树遍历,这次采用非递归模式遍历二叉树。 前期准备 建立一个节点类,各个节点即可组成树 public class TreeNode { private int val; private Tr
阅读全文
摘要:归并排序 本文分为以下几个部分 问题引入 master 公式 归并排序 写在最后 问题引入 求一串非空数组中的最大值,使用O(n)的时间复杂度。 最直接想到的代码就是直接一次遍历 @Test public void maxNum1(){ int arr[] = {2, 3, 4, 1, 54, 1,
阅读全文
摘要:##二叉树的遍历(BFS、DFS) 本文分为以下部分: BFS(广度优先搜索) DFS(深度优先搜索) 先序遍历 中序遍历 后序遍历 总结 ###BFS(广度优先搜索) 广度优先搜索[^1](英语:Breadth-First Search,缩写为BFS),又译作宽度优先搜索,或横向优先搜索,是一种图
阅读全文