如果算法具有两个子算法,当子算法A1对给定输入最佳情况时,则是子算法A2的最坏情况。我怎样才能找到整体算法的复杂性? 我只是说Ω(N)+ O(N)=? 我知道算法是按顺序执行顺序,所有复杂度都是O(N)+ O(N),嵌套顺序是O(N)* O(N)。
在两种情况下,请按顺序和嵌套顺序告诉我
答案 0 :(得分:5)
基本上Ω(N)+ O(N)=Ω(N)。因为O(N)表示低(或至多相同)Ω(N)的量级。当它们相加时,可以省略较低的顺序。
答案 1 :(得分:4)
如果您的算法包括一个采用(例如)O(N)时间的操作,而另一个采用O(N ^ 2)时间,则总体复杂度为O(N ^ 2)。没有O(N ^ 2 + N)这样的东西。 Ω()也是如此。这回答了关于“顺序执行顺序”的问题。
如果您的算法包含N个操作,每个操作花费O(N)时间,则总体复杂度为O(N ^ 2)。 Ω()也是如此。您只需乘以多项式,并采用随着N增加最快增长的项。这将回答您关于“嵌套执行顺序”的问题。