数据结构与算法——1.1算法分析
Posted henry-zhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法——1.1算法分析相关的知识,希望对你有一定的参考价值。
什么是算法分析?
比较方面:
- 代码风格,可读性
- 计算资源占用
* 空间(内存)占用
* 执行时间占用
运行时间检测
python中的time模块,当前时间,基准点----->1970年0点0时0分0秒
不同运行环境(linux or windows? 移动端or服务器?),编程语言,因此用时间作为衡量指标不合理。
算法时间度量指标:
必须是独立于具体程序/机器的度量指标,如算法所实施的操作步数。
赋值语句:一个比较合适的选择
- 同时包含(表达式)计算和(变量)存储两个基本资源占用
- 程序设计语言本身,除了与计算资源无关的定义语句外,主要就是控制流语句(结构操作)和赋值语句(数据操作),而结构操作仅起到组织语句作用,并不实施实际的处理。
“大O”表示法
基本操作步数的精确值并不是特别重要,发展的眼光看--最重要的是主导部分,取T(n)中随着n增加而加速度最快的主导部分---即数量级函数order of magnitude: f(n),则可表示为O(f(n))
具体做法:
- 去掉低阶部分,只保留最高阶
- 将系数置为1
- 一般来说以最差复杂度作为衡量指标
常见的大O数量级函数,7种
以上是关于数据结构与算法——1.1算法分析的主要内容,如果未能解决你的问题,请参考以下文章