02.数据结构之算法
算法:算法是解决特定问题求解步骤的描述 在计算机中表现为指令的有限序列 并且每条指令表示一个或多个操作。
重点是高效。
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
好的算法还应该具备时间效率高和存储虽低的特点。
1.算法效率的度量
事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算。
经过分析,我们发现,一个用高级程序语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:
1.算法采用的策略、方法。
2.编译产生的代码质量。
3问题的输入规模。
4.机器执行指令的速度。
第1条当然是算法好坏的根本,第2条要由软件来支持,第4条要看硬件性能。也就是说,抛开这些与计算机硬件、软件有关的因素,一个程序的运行时间,依赖于算法的好坏和问题的输入规模。所谓问题输入规模是指输入量的多少。
2.算法时间复杂度
2.1 算法时间复杂度定义
1.线性阶
2.对数阶
3.平方阶
3.常见的时间复杂度
4.最坏情况与平均情况
5.算法空间复杂度
在写代码时,完全可以用空间来换取时间。