《大话数据结构》读书笔记--第2章 算法
其他
2020-02-07 14:45:47
阅读次数: 0
2.4 算法定义
算法:是解决特定问题步骤的描述,在计算机中表现为指令的有限序列,并且每一条指令表示一个或多个操作。
2.5 算法的特性
输入、输出、有穷性、确定性、可行性。
2.6 算法设计的要求
正确性、可读性、健壮性、时间效率高和存储量低
2.7 算法效率的度量方法
事后统计方法
事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行评估。 1.采用策略、方法 2.编译产生代码质量 3.问题输入规模 4.机器执行指令速度
2.8 函数的渐近增长
给定两个函数 f(n) 和 g(n),如果存在一个整数 N,使得对于所有的 n > N,f(n) 总是比 g(n) 大,f(n) 的增长渐快于 g(n);
判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而应该更关注主项(最高阶项)的阶数。
2.9 算法时间复杂度
在进行算法分析是,语句总的执行次数 T(n) 是关于问题规模 n 的函数,进而分析 T(n) 随 n 的变化情况并确定 T(n) 的数量级,算法的时间复杂度,也就是算法的时间量度,记:T(n)= O(f(n),它表示随问题规模 n 的增大,算法执行时间增长率和 f(n) 的增长率相同,称作算法的渐近时间复杂度,简称时间复杂度,其中 f(n) 是问天规模 n 的某个函数。表示 大 O 记法
一般情况下,随着 n 增大,T(n) 增长最慢的算法为最优算法。
常数阶(O(1))、线性阶(O(n))、对数阶(O(logn))、平方阶(n2 )、指数阶、立方阶(n3 )、nlog阶(nlogn阶)
2.9.2 推导大 O 阶方法
用常数 1 取代运行时间中所有加法常数
在修改后的运行次数,只保留最高阶项
如果最高阶项存在并不为 1 ,取出相乘的常数。
2.11 最坏情况与平均情况
平均时间复杂度(期望的运行时间)
最坏时间复杂度(运行时间不能再坏了)–通常用这个
2.12 算法空间复杂度
通过计算算法多需要的存储空间实现,算法空间复杂度的计算公式:S(n) = O(f(n)),n 为问题的规模,f(n) 为语句关于 n 所占存储空间函数。
发布了40 篇原创文章 ·
获赞 14 ·
访问量 4万+
转载自 blog.csdn.net/qq_44947117/article/details/104173316