算法系列:算法基础之如何分析算法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列:算法基础之如何分析算法?相关的知识,希望对你有一定的参考价值。

定义:分析算法是指预测算法需要的计算时间。

在能够分析一个算法之前,我们必须有一个要使用的实现技术的模型,包括描述所用资源及其代价的模型。

实现技术:一般假定一种通用的单处理器计算模型——随机访问机(Random-access machine,RAM)来作为我们的实现技术,算法还可以用计算机程序来实现。

在RAM模型中,

(1)指令一条接一条的执行,没有并发操作;

(2)RAM模型包含真实计算机中的常用指令:算术指令(如加法、减法、乘法、除法、取余、向下取整、向上取整)、数据移动指令(装入、存储、复制)和控制指令(条件与无条件转移、子程序调用与返回);

(3)每条指令的所需的时间都为常量;

(4)模型中的数据类型有整数型和浮点实数型;

(5)对每个数据字的规模假定一个范围。例如,当处理规模为n的输入时,一般假定对某个大于等于1的常量c,整数由clgn位来表示(为什么?)

实例:插入排序算法的分析

 

以上是关于算法系列:算法基础之如何分析算法?的主要内容,如果未能解决你的问题,请参考以下文章

信息摘要算法之五:HMAC算法分析与实现

基础算法系列之排序算法-3. 直接插入排序

(16)云计算核心算法之Paxos算法

基础算法系列之深度优先搜索

机器学习|数学基础Mathematics for Machine Learning系列之图论:生成树算法

机器学习|数学基础Mathematics for Machine Learning系列之图论:生成树算法