2016-08-30 51 views
0

我知道嵌套循环的大O是n^2。但是,如果嵌套循环不依赖于n呢?它会是n * k。比方说,我们有用户,并为每个用户,我们必须找到他的课程。另一个例子,假设我们是id。从ID我们必须找到所有的订单,并从每个订单,我们必须找到所有的订单细节。需要找到订单和订单详细信息的大代码

public static void DoSomeStuff(string id) 
{ 
    // find all orders from id 
    for (int i = 0; i < orders.Count; i++) 
    { 
     var order = orders[i]; 
     // find orderDetails from Order 
     for (int j = 0; j < orderDetails.Count; j++) 
     { 
      // Do something 
     } 
    } 
} 

什么是BIg O在这里?

+1

你说得对。答案是O(n * m)。 n是订单的大小,m是最大订单的大小。 – Max

+0

相关问题:[复杂的嵌套循环](http://stackoverflow.com/questions/39181854/complexity-of-nested-for-loops) –

回答

1

假设// Do somethingO(1)中运行,您的代码在O(orders.Count * orderDetails.Count)

+0

你的意思是n * m? – user960567

+1

定义'n'和'm'。 – Thomas

+0

“某事非凡”你的意思是O(1)? :) – Max

相关问题