首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >算法分析详解

算法分析详解

作者头像
洁洁
发布2023-10-10 13:34:21
发布2023-10-10 13:34:21
4390
举报
文章被收录于专栏:小洁叫你mysql小洁叫你mysql

自古老的公元前1世纪开始,《周髀算经》就作为中国最古老的天文学和数学著作。

《周髀算经》采用最简便可行的方法确定天文历法,揭示日月星辰的运行规律,包括四季更替,气候变化,南北有极,昼夜相推的道理。为后来者的生活作息提供了有力保障。

经过几个世纪的发展,到公元9世纪,波斯数学家al-Khwarizmi第一次在数学上提出了“算法”这个概念——演算法。

算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。

在计算机科学中,算法代表用计算机解一类问题的精确、有效的方法。

算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。

算法是指令的有限序列,其中每一条指令表示一个或多个操作。

算法有如下几个重要特性:

1.有穷性(每一步必须在有穷的时间内完成)

2.可行性(必须能通过已经实现的基本运算的有限次执行)

3.确定性(每一条指令没有二义性,相同输入必须相同输出)

4.一个算法有零个或者多个输出。

5.一个算法有一个或者多个输入。

一个好算法应该

1.正确性

简单理解为:

程序中没有语法错误,对于几个给定的输入输出都可以正确计算出来,对于精挑细选的带有刁难性的输入也能满足要求计算正确,程序对于一切合法输入都能正确计算出来。

2.可读性

易于理解

3.健壮性

当输入非法数据时,算法会恰当做出反应和处理。而不是中断程序进行。

4.高效性

即用时间复杂度和空间复杂度来衡量代码的高效性(通常两者不可兼得)

时间复杂度 :

即通常所说的算法执行所需要耗费的时间,时间越短,算法越好。

空间复杂度 :

1.程序保存所需要的存储空间大小。

2.程序在执行过程中所需要消耗的存储空间资源(定义的变量)。

下面列举一些常见的时间复杂度:

常数阶

O(1)

对数阶

O(log2n)

线性阶

O(n)

线性对数阶

O(nlog2n)

平方阶

O(n*n)

立方阶

O(n*n*n)

...

...

k次方阶

O(n的k次方)

指数阶

O(2的n次方)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档