非科班出身真的知之甚少,能学一点是一点
好的算法有两个衡量指标
1.空间复杂度
根据算法写成的程序在执行时占用存储单元的长度
2.时间复杂度
根据算法携程的程序在执行时耗费的时间长度
空间复杂度太大,程序会直接崩溃。
时间复杂度太大,需要等待很长的时间才会得出结果。
机器运算加减 比运算乘除 要快很多
分析算法效率的时候需要关心两种复杂度
1.最坏情况复杂度(容易分析)
2.平均复杂度
复杂度的渐进表示法
上界 、 下界
分析算法是都希望越贴近界限越好
千万不要设计出 n!的算法
最缓慢的曲线是 log n
n 平方 的 算法 可以想办法 替换成 n log n
思想 分而治之
先将问题 拆分 然后 分别计算 最后 整合起来
线性结构
线性表
一元多项式
如何用程序设计 一元多项式
1.同一个问题可以有不同的表示(存储)方法
2.有一类共性问题:有序线性序列的组织和管理
线性表的抽象数据类型(list)
实现:利用数组的顺序存储