day1 数据结构与基本算法 ---算法质量的评判标准

数据结构与基本算法(python版)

day 1
数据结构算法 都是计算机程序的基本构建模块,算法描述了最终能解决一个问题的计算过程,而数据结构呢。。。我个人的理解是构成一段或庞大,或复杂的,或相互关联,或毫无关系的数据的构造模型。
今天先从算法说起。
首先,怎样评判一个算法的质量呢?最基本的标准应该是正确性,就是说评判算法的好坏的前提是,这个算法起码是能够正确完整地解决了它所对应的问题。其次算法的可读性易维护性也是重要的标准。记得以前看过一关于“程序员与程序的关系”的书籍,里面有这样一句话让我记忆很深,‘当人们在编写软件时,他们不是为自己写。事实上,他们甚至不是专门为计算机写的。而实际上,优秀的程序员知道,代码是为下一个会阅读它而进行维护或者重用的人写的。如果那个人无法理解代码,在现实的开发场景中,就毫无用处了。’(以上均是引子,后面才是正文)
但是,今天所要归纳的算法质量的重要标准是,算法运行性能(时间性能&&空间性能)

1、度量算法性能的几种方法

  1. 度量算法的运行时间:是指一个算法从开始到结束所消耗的所有时间。
  2. 统计指令:是指统计对不同的问题规模所要执行的指令的数目,要注意的是,统计指令的时候,所统计的是用于编写算法的较高级代码中的指令数目,而不是执行机器语言的程序中的指令数目。
  3. 度量算法所使用的内存:对于算法所使用资源的完整分析,还包括所需的内存数量。同样,还是要关注潜在的增长率的。

2、复杂度分析

  1. 复杂度的阶:主要是指算法所要处理的问题的规模大小,通过代数形式来表达。
  2. 大O表示法:用大O的形式来表现复杂度(big-O nation),“O”表示“on the order of(在…阶)”,这是对算法工作量的复杂度的级别的一种表示。例如,一个线性时间算法的阶是O(n)。
  3. 常量比例的作用:常量比例涉及在大O分析中通常是会被忽略的项和系数。可是,当这些项很大的时候,它们可能会影响到算法,对于较小或者中等大小的数据集合,尤其如此。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值