我在解决练习方面遇到了麻烦。上下文是对运行时间的渐近分析。给出了插入排序等算法。结果应该是输入的θ符号(渐近精确):{N,N-1,...,N / 2,1,1,2,3 ...... ,N / 2}。问题是:我如何计算运行时间?我的意思是,计算最坏情况或最佳情况是没有问题的。我的问题是如何处理输入以及如何在计算中考虑它们。
感谢您的帮助!
问候 GR
答案 0 :(得分:0)
见评论:
你有没有尝试列出程序实际上将采取的一些简单输入的步骤,如(4,3,2,1,1,2)或(6,5,4,3,1,1,2,3) ?你能列出"列出"一般情况下N的步骤? - David K Oct 23' 14 at 16:32
首先感谢您的回答。 :-)我只计算添加量并进行比较。所以在插入排序中有n(n-1)\ 2个操作。在这种情况下,Theta是Theta(n * n)。我现在的问题是,我如何将其映射到实际输入? - GR_ Oct 23' 14 at 18:31
如果您实际上已经计算了插入排序的最坏情况复杂度的操作,那么您可以通过第10个操作来分析数字1到100的两个数字进行比较。也就是说,计数操作将操作映射到真正的输入。这实际上是一个更难的问题,因为您还必须确定哪个输入是最坏的情况,而这里已经为您描述了输入。 - David K Oct 23' 14 at 19:01