“高效性”(如时间复杂度低、空间占用少)属于**算法质量的评价标准**

算法的五大基本特性是:

  1. 有穷性(Finiteness):算法必须在有限步内结束,不能无限循环;
  2. 确定性(Definiteness):算法的每一步骤必须有明确无歧义的定义,相同输入总产生相同输出;
  3. 可行性(Effectiveness / Feasibility):算法中每一步都必须是基本、可执行的操作(即原则上能用纸笔或计算机在有限时间内完成);
  4. 输入(Input):算法有零个或多个输入,这些输入取自特定集合;
  5. 输出(Output):算法至少有一个输出,且该输出与输入之间存在明确关系。

✅ “高效性”(如时间复杂度低、空间占用少)属于算法质量的评价标准(如正确性、健壮性、可读性、可扩展性、高效性等),而非定义算法所必需的基本特性——即:一个算法可以效率很低(如指数级),但只要满足上述五点,仍是“算法”。

类比:一辆车的基本属性是“有轮子、能行驶、有方向盘”,而“百公里油耗低”是性能指标,不是定义“车”的必要条件。

“零输入”符合算法的输入特性,是因为算法定义中对“输入”的要求是:有零个或多个输入(即输入集合可以为空)。关键不在于“是否需要外部提供数据”,而在于算法是否在逻辑上明确其输入域——当输入为空集时,算法仍能从确定的初始状态出发,执行有限、确定、可行的步骤,并产生输出。

✅ 这完全满足五大特性:

  • 有穷性:步骤有限;
  • 确定性:每步无歧义;
  • 可行性:所有操作可执行;
  • 输入:显式定义为“无输入”(即输入集合为 ∅);
  • 输出:有明确定义的结果。

🔹 经典示例:计算并输出前100个正整数的和

def sum_first_100():
    total = 0
    for i in range(1, 101):  # i = 1,2,...,100
        total += i
    return total  # 输出:5050
  • ✅ 无参数(零输入);
  • ✅ 每次运行结果恒为 5050(确定性);
  • ✅ 仅含赋值、循环、加法(均可机械执行);
  • ✅ 100次迭代 → 有穷性;
  • ✅ 明确输出一个整数 → 满足输出特性。

其他合法零输入算法示例:

  • 输出当前系统时间(输入隐含于系统状态,但算法本身不接收用户输入);
  • 判定“4 是合数”并返回 True(硬编码逻辑,无需外部输入);
  • 枚举并输出斐波那契数列前20项(起始值固定,无输入)。

⚠️ 注意:零输入 ≠ 无初始状态。算法总需有确定的初始配置(如变量初值、内存状态),这属于算法描述的一部分,而非“输入”。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bol5261

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

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

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

打赏作者

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

抵扣说明:

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

余额充值