【数据结构】算法和算法分析

  • 1.算法的定义及特性

算法(Algorithm)是为了解决某类问题而规定的一个有限长的操作序列。

对特定问题求解步骤的一种描述

一个算法必须满足以下五个重要特性。
(1)有穷性。一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。(用有限的步骤解决特定的问题

(2)确定性。对于每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性,使算法的执行者或阅读者都能明确其含义及如何执行。

相同的输入,只能得到相同的输出
(3)可行性。算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。

(4)输入。一个算法有零个或多个输人。当用函数描述算法时,输入往往是通过形参表示的,在它们被调用时,从主调函数获得输人值。
(5)输出。一个算法有一个或多个输出,它们是算法进行信息加工后得到的结果,无输出的算法没有任何意义。当用函数描述算法时,输出多用返回值或引用类型的形参表示。

  • 2.评价算法优劣的基本标准

一个算法的优劣应该从以下几方面来评价。
(1)正确性。在合理的数据输入下,能够在有限的运行时间内得到正确的结果。(即使没有解决问题,它依旧是算法,但不是好算法
(2)可读性。一个好的算法,首先应便于人们理解和相互交流,其次才是机器可执行性。可读性强的算法有助于人们对算法的理解,而难懂的算法易于隐藏错误,且难于调试和修改。
(3)健壮性。当输人的数据非法时,好的算法能适当地做出正确反应或进行相应处理,而不
会产生一些莫名其妙的输出结果。

(4)高效性。高效性包括时间和空间两个方面。时间高效是指算法设计合理,执行效率高可以用时间复杂度来度量;空间高效是指算法占用存储容量合理,可以用空间复杂度来度量。时间复杂度和空间复杂度是衡量算法的两个主要指标。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐晓率

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值