OMPASSAK

Docker 容器启动顺序

1. 控制容器启动顺序的几种方式 shell 脚本 docker compose 2. 什么是 docker compose,为什么使用它? 在单个物理机器上多个有依赖关系的docker容器的启动,一 …

Read more →
OMPASSAK

Music-Theory

1. 为什么要学乐理? 学乐器需要(即兴演奏需要一定的乐理知识) 音乐创作(作曲,编曲) 修音后期(调式,节拍) 声乐(和弦,爬音,升降调) 2. 音名与钢琴键盘 为什么选钢琴键盘? 钢琴有最宽的音域 …

Read more →
OMPASSAK

git 基本使用

1. git 的工作区域和文件状态 工作区(Working Directory) 也叫工作目录或者本地工作目录,对应自己电脑上的文件夹,实际操作的目录 暂存区(Staging Area/Index) …

Read more →
OMPASSAK

Shortest-Path

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

Read more →
OMPASSAK

Minimum-Spanning-Tree

讨论最小生成树要基于一种叫 加权图 的图模型。加权图的 加权 的含义是为图的每一条边关联一个权值或是成本。这种图相比于无向图可以更细致的描述问题。在一幅航空图中,边表示航线,权值则可以表示距离或是费 …

Read more →
OMPASSAK

Digraph

有向图中的有向是指图中每一条边都是有向的,每一条边连接的两个顶点都是一个有序对,它们的邻接性是单向的。能从 v->w ,不一定能从 w->v。这是有向图与无向图的本质区别,这种区别导致了两 …

Read more →
OMPASSAK

Undigraph

图是由一组顶点和一组能够将两个顶点相连的边组成的逻辑结构,一般情况下为了和其他的图模型相互区别,又称图为无向图。在现实中的许多问题都可以抽象为一张图,结合优秀的算法,许多困难的问题都可以迎刃而解。 …

Read more →
OMPASSAK

Hash-Table

使用基于红黑二叉查找树实现的查找算法,在平均情况下可以达到logN的效率。算法时间复杂度中,最小最优的就是常数级别的复杂度。有没有一种算法可以突破logN的查询复杂度到达常数级别的效率?答案就是散列 …

Read more →
OMPASSAK

Binary-Search-Tree

我们都知道在一定程度上,程序 = 算法 + 数据结构。抛开数据结构说算法;抛开算法说数据结构,都是不太妥当的。而衡量一种数据结构的优略,一是看具体的问题需求,二是看其插入,删除排序等各个方面的性能。 …

Read more →
OMPASSAK

Red-Black-BST

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

Read more →
OMPASSAK

Binary-Search

二分查找也称为折半查找(Binary Search),是一种效率较高的查找方法。它的一般查找过程为:首先,需要将待查的线性表按关键字排序,然后将表中间位置的元素的关键字与查找关键字比较。如果二者相等, …

Read more →
OMPASSAK

Heap-Sort

1. 优先队列 学习堆排序前,需要先了解优先队列是什么东西,引出数据结构:堆,最后学习堆排序。优先队列和普通的队列一样是一种数据结构,普通队列遵循的原则就是先进先出(FIFO)。而优先队列则是无论入队 …

Read more →
OMPASSAK

Quick-Sort

快速排序算法可能是应用最为广泛的算法,它的实现较为简单而且排序效率比大多数算法都要高。仅需要一个辅助栈就可以实现在原数组上原地排序。但是快速排序算法稳定性不高,如果使用不当经常可能使算法的时间复杂度提 …

Read more →
OMPASSAK

Merge-Sort

顾名思义,并归排序是排序算法的一种,它的主要特点及思想就是体现在 “并归” 二字。并归排序中的并归的含义是指,将两个有序的数组并归组合成一个更大的有序数组。 而并归排序的思想就是将一个待排序数组(递归 …

Read more →
OMPASSAK

Java socket 通信流对象的选择

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

Read more →