大话数据结构 第二章 算法
2019-08-08 00:25
197 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Felix_hyfy/article/details/98800894
算法设计的要求 算法效率的度量方法 算法时间复杂度
大话数据结构 第二章 算法
算法定义
- 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列。并且每条指令表示一个或多个操作。
算法特性
输入
- 具有零个或者多个输入
输出
- 算法最少有一个输出。
有穷性
- 算法在执行完有限步骤后会自动结束,不会无限循环
确定性
- 算法的每个步骤都有确定的含义,无二义性。
可行性
算法设计的要求
正确性
- 算法的正确性大部分情况下都不是用程序证明的,而是用数学方法证明的。
- 检验一个算法是否正确的普遍标准:算法程序在没有语法错误、对于合法的输入数据能够产生满足要求的输出结果的前提下,对于非法的输入数据能够得出满足规格说明的结果
可读性
健壮性
- 健壮性是指:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果
时间效率高和存储量低
算法效率的度量方法
事后统计方法
- 利用计算机计时器对不同算法的程序的运行时间进行比较,从而确定效率的高低。
- 有很大缺陷,不予采纳
事前分析估算方法
- 指在程序编制前,根据统计方法对算法进行估算
- 一个程序的运行时间,依赖于算法的好坏和问题的输入规模(输入量的多少)
- 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注最高阶项的阶数
算法时间复杂度
推导大O阶方法
- 用常数1取代运行时间中的所有加法常数
- 在修改后的运行次数函数中,只保留最高阶项
- 如果最高阶项存在且不是1,则去除与这个项相乘的常数
- 最后得到的结果就是大O阶
常见大O阶
- 常数阶O(1)、线性阶O(n)、对数阶O(log n)、平方阶O(n^2 )、立方阶O(n3)、指数阶O(2n)
复杂度关系
- 常数阶<对数阶<线性阶<nlogn阶<平方阶<立方阶<指数阶<阶乘阶
相关文章推荐
- 《大话数据结构》笔记之 第二章 算法
- 《大话数据结构》读书笔记 第二章 算法
- 大话数据结构--第二章 算法
- 大话数据结构 第二章 算法(读书笔记)
- 「笔记」《大话数据结构》第二章:算法
- 《大话数据结构》读书笔记 第二章 算法 函数的渐近增长
- 大话数据结构第二章——算法
- 《大话数据结构》学习笔记(二)- 第二章 算法
- 【大话数据结构】第二章 算法
- 读书笔记-《大话数据结构》第二章算法
- 算法原理 第二章
- 第二章 2.3 设计算法
- 第二章 算法----程序的灵魂
- <笔记><算法导论><第二章>
- 第二章 算法——程序的灵魂
- 第二章线性表P29~34(顺序线性表算法)
- 第二章算法
- 大话数据结构之第二章算法总结,重点知识,时间复杂度
- 算法导论第二章-练习2.1-4
- 算法导论第二章-练习2.2-3