数据结构与算法
排序
Insertion Sort 插入排序

将元素不断插入已经排序好的 array 中
- 起始只有一个元素5,其本身是一个有序序列
- 后续元素插入有序序列中,即不断交换,直到找到第一个比其小的元素
| Best | Avg | Worst |
|---|---|---|
| O(n) | O(n^2) | O(n^2) |
缺点
- 平均和最坏情况的时间复杂度高达 O(n^2)
优点
- 最好情况时间复杂度为O(n)
总结:插入排序平均和最坏情况时间复杂度都是 O(n^2)
Quick Sort 快速排序


将元素不断插入已经排序好的 array 中
| Best | Avg | Worst |
|---|---|---|
| O(n) | O(n^2) | O(n^2) |
缺点
优点
总结:插入排序平均和最坏情况时间复杂度都是 O(n^2)

编写的代码能够达到正确可靠、简洁清晰的目标可称为高质量代码
简单性
公共符号始终要注释
package main
import "fmt"
func main() {
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
if 8%4 == 0 {
fmt.Println("8 is divisible by 4")
}
if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has l digit")
} else {
fmt.Println(num, "has multiple digits")
}
}
在 Go 中没有 while 和 do while,只有 for 循环
ACID:
1960s,传统的文件系统已经不能满足人们的需要,数据库管理系统(DBMS)应运而生DBMS:按照某种数据模型来组织、存储和管理数据的仓库。所以通常按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。

把每个数据作为一个节点,构成一个网状的结构,每个父节点可以有多个子节点,一个子节点也可以有多个父节点,多对多

层次模型是一个树形模型,层次模型和网状模型特别相像,最大的不同是每个父节点可以有多个子节点,但每个子节点只能有一个父节点,一对多

Q : 单机存储系统怎么做到高性能/高性价比/高可靠性
A : R(edundant) A(array) I(nexpensive) D(isks)
关系 = 集合 = 任意元素组成的若干有序偶对反应了事物间的关系