【第2/9章】算法绪论
算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法五特性:
输入 | 算法具有零个或多个输入 |
输出 | 算法至少有一个或多个输入 |
有穷性 | 算法在执行有限步骤后自动结束,不会出现无限循环 |
确定性 | 算法的每一步都有确定的含义 |
可行性 | 算法的每一步都是可行的 |
算法的要求:
正确性 |
算法至少具有输入、输出和加工处理无歧义性、能够正确反映问题的需求、能够得到问题的正确答案。1.算法程序没有语法错误 2.算法对合法输入可以产生正确答案 3.算法对非法输入的说明处理 4.算法对***难的测试数据都有满足输出的结果。 |
可读性 | 便于阅读、理解和交流 |
健壮性 | 当输入非法数据时,算法也能够做出相应的反应,而不是莫名奇妙的结果。 |
时间效率与空间效率 | 应满足时间效率高和存储量低的需求 |
算法效率的度量方法:
事后估计法:利用计算机测试运行算法的速度。
事前估算法:在计算机程序编制前,依据统计方法对算法进行估算。
常见时间复杂度:
最坏时间复杂度:在最不理想,运气最坏的时候,执行这段代码的时间复杂度。
平均时间复杂度:它把每种情况下的复杂度加起来,然后除以情况的个数,所得的值就是平均复杂度,类似于数学上的均值。
算法空间复杂度:通过计算完成某一算法需要占用的空间大小而实现。
本文来自博客园,作者:帅气的涛啊,转载请注明原文链接:https://www.cnblogs.com/handsometaoa/p/12580703.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)