大话数据结构 第二章 算法
其他
2020-02-15 19:26:16
阅读次数: 0
算法定义
- 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列。并且每条指令表示一个或多个操作。
算法特性
输入
输出
有穷性
确定性
可行性
算法设计的要求
正确性
- 算法的正确性大部分情况下都不是用程序证明的,而是用数学方法证明的。
- 检验一个算法是否正确的普遍标准:算法程序在没有语法错误、对于合法的输入数据能够产生满足要求的输出结果的前提下,对于非法的输入数据能够得出满足规格说明的结果
可读性
健壮性
- 健壮性是指:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果
时间效率高和存储量低
算法效率的度量方法
事后统计方法
- 利用计算机计时器对不同算法的程序的运行时间进行比较,从而确定效率的高低。
- 有很大缺陷,不予采纳
事前分析估算方法
- 指在程序编制前,根据统计方法对算法进行估算
- 一个程序的运行时间,依赖于算法的好坏和问题的输入规模(输入量的多少)
- 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注最高阶项的阶数
算法时间复杂度
推导大O阶方法
- 用常数1取代运行时间中的所有加法常数
- 在修改后的运行次数函数中,只保留最高阶项
- 如果最高阶项存在且不是1,则去除与这个项相乘的常数
- 最后得到的结果就是大O阶
常见大O阶
- 常数阶O(1)、线性阶O(n)、对数阶O(log n)、平方阶O(n^2 )、立方阶O(n3)、指数阶O(2n)
复杂度关系
- 常数阶<对数阶<线性阶<nlogn阶<平方阶<立方阶<指数阶<阶乘阶
发布了59 篇原创文章 ·
获赞 3 ·
访问量 1810
转载自blog.csdn.net/Felix_hyfy/article/details/98800894