Docker
Sep 8, 2023 | 1 min read

Docker 容器启动顺序

1. 控制容器启动顺序的几种方式 shell 脚本 docker compose 2. 什么是 docker compose,为什么使用它? 在单个物理机器上多个有依赖关系的docker容器的启动,一般可以使用docker compose工具来处理。docker compose是dcoker官方提供 …

Socket
Dec 8, 2022 | 6 min read

Java socket 通信流对象的选择

确定大致范围 查看 Java Socket 对象的方法我们可以发现,获取操控socket输入输出的对象的方法就两个: 1 2 socket.getInputStream(); socket.getOutputStream(); 所以我们直接使用 Java 可以由 InputStream …

Music
Jul 21, 2021 | 1 min read

Music-Theory

1. 为什么要学乐理? 学乐器需要(即兴演奏需要一定的乐理知识) 音乐创作(作曲,编曲) 修音后期(调式,节拍) 声乐(和弦,爬音,升降调) 2. 音名与钢琴键盘 为什么选钢琴键盘? 钢琴有最宽的音域和直观的黑白键,用钢琴键盘学乐理更容易 钢琴键盘的布局 首先钢琴有88个键,去掉最左侧的三个键和最右 …

Git
Apr 6, 2021 | 2 min read

git 基本使用

1. git 的工作区域和文件状态 工作区(Working Directory) 也叫工作目录或者本地工作目录,对应自己电脑上的文件夹,实际操作的目录 暂存区(Staging Area/Index) 临时存储区域,用于保存即将提交到git仓库的修改内容 本地仓库(Local Repository) …

Algorithm
Jul 24, 2020 | 9 min read

Shortest-Path

在简单的无向图模型中,我们使用 广度优先搜索 可以找到一个顶点到另一个顶点的最短路径(含顶点最少)。但是在加权图中情况有了很大的不同,需要考虑边的权重,这也更贴合许多实际问题。在加权图中的最短路径又可以理解为:找到从一个顶点到达另一个顶点的成本最小的路径。 为了能够解决更多的实际问题,方便提取问题的 …

Algorithm
Jul 21, 2020 | 7 min read

Minimum-Spanning-Tree

讨论最小生成树要基于一种叫 加权图 的图模型。加权图的 加权 的含义是为图的每一条边关联一个权值或是成本。这种图相比于无向图可以更细致的描述问题。在一幅航空图中,边表示航线,权值则可以表示距离或是费用。在一幅电路图中,边表示导线,权值则可能表示导线的长度即成本,或是信号通过这条线路所需的时间。我们可 …

Algorithm
Jul 18, 2020 | 7 min read

Digraph

有向图中的有向是指图中每一条边都是有向的,每一条边连接的两个顶点都是一个有序对,它们的邻接性是单向的。能从 v->w ,不一定能从 w->v。这是有向图与无向图的本质区别,这种区别导致了两种图处理算法上的巨大差异。 1. 术语表 学习有向图的处理算法我们,需要了解一些定义和术语。如下表: …

Algorithm
Jul 9, 2020 | 10 min read

Undigraph

图是由一组顶点和一组能够将两个顶点相连的边组成的逻辑结构,一般情况下为了和其他的图模型相互区别,又称图为无向图。在现实中的许多问题都可以抽象为一张图,结合优秀的算法,许多困难的问题都可以迎刃而解。 1. 术语表 和图有关的术语,定义非常多,其一部分内容如下: 术语 条件(释义) 顶点相邻 两个顶点通 …

Algorithm
Jul 6, 2020 | 5 min read

Hash-Table

使用基于红黑二叉查找树实现的查找算法,在平均情况下可以达到logN的效率。算法时间复杂度中,最小最优的就是常数级别的复杂度。有没有一种算法可以突破logN的查询复杂度到达常数级别的效率?答案就是散列表(Hash-Tables) 使用散列表需要将键转化为数组的索引,进而使用这个索引实现对数组中键值对的 …

Algorithm
Jun 14, 2020 | 4 min read

Red-Black-BST

基于二叉查找树的查找和插入算法已经可以应用在许多的用例特定的应用程序上,但是在最坏的情况下,其结构退化为链表的性能急剧降低。这是让人无法容忍的。 由于二叉查找树的查询性能依赖于树的形态,如果可以找到一种方法可以让二叉查找树无论如何构造,都可以处于一个平衡的状态。我们就可以在更多的情况下应用二叉查找树 …