前言
本文部分内容引自 dengqinrui123 的初赛笔记,在此表示感谢
1.Linux 命令
ls
: 列出目录下文件夹
cd
:切换目录
mkdir
:新建目录
rm
:删除
cp
:复制
mv
:移动
rmdir
:删除目录
2.排序方法
名称 | 最好复杂度 | 最坏复杂度 | 平均复杂度 | 是否稳定 |
---|---|---|---|---|
插入排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n ^ 2) O(n2) | O ( n 2 ) O(n ^2) O(n2) | 稳定 |
冒泡排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n ^ 2) O(n2) | O ( n 2 ) O(n^2) O(n2) | 稳定 |
选择排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n ^ 2) O(n2) | O ( n 2 ) O(n^2) O(n2) | 不稳定 |
归并排序 | O ( n ) O(n) O(n) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | 稳定 |
快速排序 | O ( n ) O(n) O(n) | O ( n 2 ) O(n ^ 2) O(n2) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | 不稳定 |
桶排 | / | O ( n 2 ) O(n^2) O(n2) | O ( n + n 2 k + k ) O(n + \frac{n^2}{k} + k) O(n+kn2+k), k k k为分块数量 | 稳定 |
计数排序 | / | O ( n + w ) O(n + w) O(n+w) | O ( n + w ) O(n + w) O(n+w) , w w w为值域 | 稳定 |
基数排序 | / | O ( n k ) O(nk) O(nk) | O ( n k ) O(nk) O(nk), k k k是位数 | 稳定 |
希尔排序 | / | O ( n 2 ) O(n^2) O(n2) | O ( n log 2 ( n ) ) O(n \log^2(n)) O(nlog2(n)) | 不稳定 |
堆排 | / | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | O ( n log ( n ) ) O(n \log(n)) O(nlog(n)) | 不稳定 |
3.有关树
完全
n
n
n 叉树:除了最后一层之外其他都是满的
满
n
n
n 叉树:包括最后一层都是满的
前序遍历:根,左儿子,右儿子
后序遍历:左儿子,右儿子,根
中序遍历:左儿子,根,右儿子
4.进制及转换
2、4、8、16进制转化:将4、8、16转为二进制,再转成其他的。
例子:将
123
4
(
8
)
1234_{(8)}
1234(8) 转化为 16 进制:
- 首先,八进制转为二进制就是将每一位转化为 3 3 3 为由 0 、 1 0、1 0、1 组成的数: 1 ← 001 , 2 ← 010 , 3 ← 011 , 4 ← 100 1\gets001,2\gets010,3\gets011,4\gets100 1←001,2←010,3←011,4←100,原数字变为 00101001110 0 ( 2 ) 001010011100_{(2)} 001010011100(2)
- 接着反向操作, 4 4 4 位一起划分 0010 / 1001 / 110 0 ( 2 ) 0010/1001/1100_{(2)} 0010/1001/1100(2),就是 29 C ( 16 ) 29C_{(16)} 29C(16)
注意:16进制以 0x
开头,
8
8
8 进制以 0
开头。