计算机科学写作:算法分析与编辑要点
1. 算法分析
1.1 算法比较的常见错误
在比较算法时,常见的错误是对执行微妙不同任务的两个算法的资源需求进行比较。例如,各种近似字符串匹配算法不会产生相同的结果,根据一个算法相似的字符串,根据另一个算法可能不相似。比较这些算法的成本并没有特别的信息价值。
1.2 渐近复杂度
算法的性能通常通过渐近分析来衡量,读者应了解算法如何随问题规模的变化而变化。大O符号定义如下:如果对于某些常数c和k,对于所有n > k,有f(n) ≤ c · g(n),则称函数f(n)是O(g(n)),即g(n)是f(n)的上界。其他界的定义如下:
- 如果f(n)是O(g(n))且g(n)是O(f(n)),那么f(n)是Θ(g(n)),Θ用于定义紧界。
- 如果f(n)是O(g(n))但不是Θ(g(n)),则f(n)是o(g(n))。
- 同样,Ω和ω用于描述下界。
大O符号也在另一种不太正式的意义上使用,用来表示复杂度而不是复杂度的上界。例如,“基于比较的排序需要O(nlogn)时间” 或 “线性插入排序总是至少需要O(n)时间”。但要注意宽松的用法可能会引起误解,当描述一个算法为 “二次” 时,不同读者可能有不同的理解。
对于在静态数据结构上操作的算法,可能需要考虑创建该数据结构的成本。例如,在排序数组中进行二分查找需要O(logn)时间,但最初对数组进行排序需要O(nlogn)时间。
1.3 分析要点
在进行算法分析时,要确保分析的领域清晰,并仔细分析数据的正确组件。例如,分析数据库算法时,通常应将其作为记录数量
超级会员免费看
订阅专栏 解锁全文
832

被折叠的 条评论
为什么被折叠?



