算法和算法的性能指标

算法是什么?
算法就像是做一件事情的步骤清单。比如,你想烤蛋糕,算法就是告诉你先打鸡蛋,再加面粉,然后放烤箱里的那一套流程。
算法得有的特点:
有穷性:就像烤蛋糕的步骤不会无限循环,最后总会有个结果。
确定性:每一步都清清楚楚,不会模棱两可,比如“加一点糖”这种模糊的指令。
可行性:所有步骤都是你能做到的,比如不会叫你“用魔法烤蛋糕”。
输入和输出:算法需要一些开始的东西(输入),然后给你一个结果(输出)。
好算法的标准:
正确性:算法得能解决问题,就像食谱得能烤出蛋糕。
可读性:别人看你的算法,得能看懂,就像食谱得让人知道怎么操作。
健壮性:算法得能处理一些意外情况,比如食谱告诉你如果烤箱坏了怎么办。
效率:算法得快,别像烤蛋糕烤了一天还没好。
存储量:算法执行的时候,别占太多内存,就像烤蛋糕不需要整个厨房。
算法效率怎么衡量?
时间复杂度:就是算法执行要花多少时间,可以想象成烤蛋糕需要的时间。
最好情况:就像烤蛋糕一切顺利,时间最短。
平均情况:就像烤很多蛋糕,平均下来需要的时间。
最坏情况:就像烤蛋糕时遇到各种问题,时间最长。
空间复杂度:算法执行需要占多少存储空间,就像烤蛋糕需要的碗和盘子。
算法计算规则:
加法规则:如果两个算法的时间复杂度加起来,我们看哪个更大,就像比较两个食谱哪个烤的时间更长。
乘法规则:如果两个算法的时间复杂度相乘,就是它们各自的时间乘起来,就像两个食谱的时间加起来。
原地工作算法:
就是算法执行的时候,不需要额外的空间,就像烤蛋糕不需要额外的碗。
 

知识点链接
算法的基本概念
概念:算法是解决特定问题的一系列有序指令或操作步骤。
重要特性:
有穷性:算法必须在执行有限步骤后终止。
确定性:算法的每一步骤都必须有明确的定义,不会产生歧义。
可行性:算法描述的操作都可以通过已经实现的基本运算执行。
输入:算法有0个或多个输入,这些输入是执行算法所需的初始数据。
输出:算法至少有一个输出,表示算法执行的结果。
优秀算法的标准
正确性:算法必须能够正确解决特定问题。
可读性:算法的描述应该清晰易懂,便于他人理解。
健壮性:算法能够处理不合理或意外的输入,不会导致错误或崩溃。
效率:算法在执行时应该尽可能高效,减少时间和空间资源的消耗。
低存储量需求:算法在执行过程中占用的存储空间应尽可能少。
算法效率的度量
时间复杂度:衡量算法执行时间的增长趋势,通常用大O符号表示,如O(n)、O(log n)等。
最好时间复杂度:在最理想情况下,算法的时间复杂度。
平均时间复杂度:在所有可能的输入实例中,算法的平均运行时间。
最坏时间复杂度:在最不利情况下,算法的时间复杂度。
空间复杂度:衡量算法在执行过程中所需的存储空间,通常也是用大O符号表示。
计算规则
加法规则:两个时间复杂度的和,取两者中较大的一个作为结果,表示为 O(f(n)) + O(g(n)) = O(\max(f(n), g(n)))。
乘法规则:两个时间复杂度的乘积,直接相乘,表示为 O(f(n)) \times O(g(n)) = O(f(n) \times g(n))。
原地工作算法
指算法在执行过程中所需的辅助空间为常量,即空间复杂度为 O(1)。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值