cpu能直接运行机器语言(01码)
cpu的位数跟处理速度有一定关系,但不能说明位数越高速度越快
快排求某一个最值时间复杂度为:O(n)
常见算法时间复杂度稳定性:
选择:平均-O(n^2) 最好-O(n^2) 最坏-O(n^2) 空间复杂度-O(1) 排序方式-In place 稳定性-不稳定
插入:平均-O(n^2) 最好-O(n^2) 最坏-O(n^2) 空间复杂度-O(1) 排序方式-In place 稳定性-稳定
归并:平均-O(n log n) 最好-O(n log n) 最坏-O(n log n) 空间复杂度-O(n) 排序方式 Out place 稳定性-稳定
快速:平均-O(n log n) 最好-O(n log n) 最坏-O(n^2) 空间复杂度-O(log n) 排序方式-In place 稳定性-不稳定
冒泡:平均-O(n^2) 最好-O(n) 最坏-O(n^2) 空间复杂度-O(1) 排序方式-In place 稳定性-稳定
希尔:平均-O(n log n) 最好-O(n log^2 n) 最坏-O(n log^2 n) 空间复杂度-O(1) 排序方式-In place 稳定性-不稳定
堆排:平均-O(n log n) 最好-O(n log n) 最坏-O(n log n) 空间复杂度-O(1) 排序方式-In place 稳定性-不稳定
计数:平均-O(n+k) 最好-O(n+k) 最坏-O(n+k) 空间复杂度-O(k) 排序方式-Out place 稳定性-稳定
桶排:平均-O(n+k) 最好-O(n+k) 最坏-O(n^2) 空间复杂度-O(n+k) 排序方式-Out place 稳定性-稳定
哈夫曼树:
给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,成这样的二叉树为最优二叉树,也称哈夫曼树
用叶子结点的权值还原哈夫曼树:
①取出序列最小叶子,生成父结点(=叶子的权值之和),父结点权值放进序列
②重复步骤①直到序列只有1个结点
带权路径长度:
叶子结点的权值*该叶子结点的深度之和
有向无环图的时间复杂度为:点的数量+边的数量
逆序对:序列中的两个数字前一个比后一个大
is_prime是不是质数、素数
约数个数计算公式:
(质因数个数+1)的乘积
例子:100=22*52
约数个数=(2+1)*(2+1)=9