https://morvanzhou.github.io/learning-steps/
https://morvanzhou.github.io/tutorials/machine-learning/torch/
https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/3-06-speed-up-learning/
算法分析基础:
分析算法就是分析算法所占用的资源,其中包括时间资源(CPU时间)和空间资源(内存空间)
算法的执行时间取决于控制结构(顺序、分支和循环三种)和原操作(数值的加减乘除)构成
常常出现的时间复杂度:
(1)没有循环操作的算法的执行时间与问题规模无关,O(1)
(2)只包含一重循环,且循环次数等于输入问题的规模n,则算法的时间复杂度为O(n)
算法的空间复杂度:度量一个算法在运行过程中临时占用的存储空间大小
如果一个算法的空间复杂度是O(1),则称算法为 in-place algorithm
临时占用的存储空间指的是函数体內分配的空间
算法的空间复杂度分析只考虑临时占用的空间
线性表的两类存储结构:顺序存储结构和链式存储结构
线性表是指:对于结构中的每个元素都有唯一的前驱和唯一的后继
线性表的顺序存储结构:顺序表,即数组(顺序表中的各个元素存储在内存中一片连续的存储空间中)
线性表的链式存储结果:链表,包括单向链表、双向链表等