gpt4 book ai didi

算法复杂度性能和空间

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:08 26 4
gpt4 key购买 nike

我正在类里面研究算法的复杂性,我需要知道是否还有其他算法的复杂性,我所知道和研究的是两种类型1- 是 BIG O 的复杂性,即时间和性能以及其他2- 是空间复杂度,也就是内存复杂度,算法有任何其他类型的复杂性吗?算法是否由我错过的其他任何东西来衡量?

最佳答案

就算法的渐近复杂性而言 - 是的,算法(和问题)是根据空间和时间来衡量的。

但是,关于它我还有很多话要说。我将尝试解决一些问题:

空间/时间消耗来自分析方法
算法的常用分析方法有4种,用于空间和时间。请记住 big-O 是一组函数,但是如何导出函数?复杂度的函数是根据分析方法导出的,(通常)是以下之一:

这些方法中的每一种都可以用于任何算法 - 并且不能保证结果相同。例如,快速排序具有 O(n^2) 最坏情况时间复杂度和 O(nlogn) 平均情况时间复杂度。

更多集:
除了大O符号外,我们还使用其他符号来表示复杂度。其他常用符号是(按用法的通用性):

  • 大 Theta (Θ)
  • 大欧米茄 (Ω)
  • 小o
  • 小欧米茄 (ω)

不要与分析方法混淆:Big Theta/Big O/符号中的每一个...都可以与任何分析方法配对(最坏情况/平均情况/...)
更多关于Big Theta、Big O的细节以及它们之间的区别可以在this thread中找到。

理论复杂性:
在理论领域"Complexity Theory" - 我们分析问题,而不是算法。在这个领域,我们关心的是一个问题是否可以多项式求解(也就是说,如果输入的大小为 n,那么这个问题可以用 n 的某个幂来求解) ), 多项式验证(给定一个可能的解决方案,检查它是否正确)。但是,还有其他类。
常见的复杂度类有:

此外——我们对问题是否可解/可判定感兴趣。描述问题可解决性的常见类有:

现实世界:
在现实世界的应用程序中——我们不仅关心理论上的空间/时间复杂度,还关心常量(一种算法花费的时间是另一种算法的一半要好得多,即使它们可以属于相同的复杂度等级. 这是因为复杂性类忽略常量。)。
我们还考虑了程序/算法的实现时间和可维护性。

关于算法复杂度性能和空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13009258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com