一、算法的定义及特性
算法(Algorithm)是为了解决某类问题而规定的一个有限长的操作序列。
1、有穷性
一个算法总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。
2、确定性
对于每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性,使算法的执行者或阅读者都能明确其含义及如何执行。
3、可行性
算法中的所有操作都可以通过已经实现的基本操作运行执行有限次来实现。
4、输入
一个算法有零个或多个输入。当用函数描述算法时,输入往往是通过形参来表示的。在它们被调用时,从主调函数获得输入值。
5、输出
一个算法有一个或多个输出,它们是算法进行信息加工后得到的结果,无输出的算法没有任何的意义。当函数描述算法时,输出多用返回值或引用类型的形参表示。
二、评价算法优劣的基本标准
1、正确性
在合理的数据输入下,能够在有限的运行时间内得到正确的结果。
2、可读性
一个好的算法,首先应便于人们理解和相互交流,其次才是机器可执行性。可读性强的算法有助于人们对算法的理解,而难懂的算法易于隐藏错误,而难于调试和修改。
3、健壮性
当输入的数据非法时,好的算法能适当地做出正确的反应或进行相应处理,而不会产生一些莫名其妙的输出结果。
4、高效性
高效性包括时间和空间两个方面。时间高效是指算法设计合理,执行效率高,可以用时间复杂度来度量;空间高效是指算法占用存储容量合理,可以用空间复杂度来度量。时间复杂度和空间复杂度是衡量算法的两个主要指标。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南