2013-08-12 3 views
0

как представить временную сложность для следующих вложенных циклов, когда есть 2 переменных, а не только N?Сложность времени для 3 вложенных циклов с двумя переменными

Допустим N = ввод размера и А = некоторое дискретное значение (соответствующее количество)

так для N = 50000, а при А = 30000

for(int i=0;i<N;i++) 
{ 
    for(int j=0;j<A;j++) 
    { 
     for(int x=0;x<N;x++) 
     { 
      // do something 
      doSomething(); 
     } 
    } 
} 

Может быть O (N^2 * A)?

Спасибо заранее Chus

ответ

0

Да, сложность в вашем случае будет O(N^2*A)

+0

Спасибо, а если A уменьшается на каждой итерации? так что 1-й - 30K, затем 25K, затем 20K и так далее? –

+0

Ну, это зависит. У нас есть 'N' итерации. Как «А» изменится? Хорошо, третья операция 20K, что будет на 10-й операции? –

+0

mmm может быть возможным, вопрос об A не имеет смысла, потому что с 80% обработки начинается с исходного значения до 0, поэтому было бы бесполезно быть настолько точным. –

0

Да, O (A * N^2). Вы только пренебрегаете меньшими терминами, если они оказывают влияние на временную сложность (т. Е. «O (A + N^2)» будет O (N^2))

+0

Большое вам спасибо –

Смежные вопросы