我知道,对于某些问题,无论使用何种算法来解决问题,解决问题所需的时间总是最短。我知道BigO捕获最坏情况(需要的最长时间),但是如何找到作为n函数所需的最小时间?我们能找到排序n个整数所需的最短时间,或者可能找到n个整数的最小值吗?
答案 0 :(得分:2)
您要找的是best case complexity
。它是一种无用的算法分析,而最坏情况分析是最重要的分析,有时会在特殊情况下使用平均案例分析。
最佳案例复杂性取决于算法。例如,在线性搜索中,最佳情况是,当搜索到的数字位于数组的开头时。或者在二分搜索中,它位于第一个分界点。在这些情况下,复杂性为O(1)。
对于单个问题,最佳案例复杂性可能因算法而异。例如,以免讨论一些基本的排序算法。
所以从上面的例子中你可以理解复杂性(无论是最好,最差还是平均)取决于算法,而不是问题