背景:
对于我的数据结构和算法,我正在研究Big O符号。到目前为止,我了解如何锻炼时间复杂度,最佳和最差情况。然而,平均情况只是令人困惑。老师只是向我们扔了一些我不懂的方程式。而且他不愿意详细解释它们。
问题:
那么请大家,计算这个的最佳方法是什么?是否有一个方程式可以计算这个或者它是否因算法而异?
你计算这个步骤有哪些步骤?
我们举一个插入排序算法的例子?
研究:
我查看了youtube和stackoverflow的答案。但他们都使用不同的方程式。
任何帮助都会很棒
谢谢
答案 0 :(得分:1)
如评论中所述,您必须查看算法的平均输入(在这种情况下意味着随机)。考虑它的一个好方法是尝试跟踪如果输入是平均值,算法会做什么。
有关插入排序的示例:
原因并非所有算法都如此简单,但如果输入是随机的,那么查看算法在每个步骤上会做什么通常会有所帮助。如果您对算法的输入有任何可用的信息,(例如,插入排序通常用作其他算法完成大部分排序后的最后一步,因为如果输入几乎已排序,则非常有效,在这种情况下,我们可能会知道没有任何对象将被移动超过x次)然后在计算平均运行时间时可以考虑这一点。