算法的基础知识笔记

算法(Algorithm)是指对解题方案准确而完整的描述。人类的一切活动中都有算法的身影,算法概念涉及到方方面面。简而言之,算法是解决问题的操作步骤。算法不等于数学上的计算方法,也不等于程序。程序可以描述算法。

算法的基本特征如下:(1)可行性,步骤可以实现,执行结果达到预期目的。(2)确定性,步骤明确,不模棱两可,不准有多义性。(3)有穷性,有限的时间内完成。(4)输入项,一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件。(5)输出项,一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。

算法复杂度用来衡量算法的优劣,包括算法的时间复杂度和算法的空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量。算法的时间复杂度不等于算法程序执行的具体时间。算法程序执行的具体时间受到所使用的计算机、程序设计语言,以及算法实现过程中的许多细节的影响,而算法的时间复杂度与这些因素无关。算法所需要的的计算工作量是用算法所执行的基本运算次数来度量的。算法所执行的基本运算次数与问题的规模有关。当具体分析一个算法的工作量时,在同一个问题规模下,算法所执行的基本运算次数还可能与特定的输入有关。即输入不同时,算法所执行的基本运算次数不同。

算法的空间复杂度是指执行这个算法所需要的存储空间。执行算法所需要的存储空间包括3个部分:输入数据所占的存储空间;程序本身所占的存储空间;算法执行过程中所需要的额外空间。其中,额外空间包括算法执行过程中的工作单元,以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模(即输入数据所占的存储空间)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是在原地工作的。

为了降低算法的空间复杂度,主要应减少输入数据所占的存储空间和额外空间,通常采用压缩存储技术实现。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值