2016-02-04 4 views
-2

Для следующего фрагмента программы вы (а) записываете общую работу, выполняемую каждым оператором программы (рядом с каждым оператором), (b) вычисляете выражение для общей сложности времени, T (n) и получаете большую сложность Oh , показывая все шаги к окончательному ответу. У меня много неприятностей.Как найти временную сложность этого следующего фрагмента программы?

for (i = 0; i < n; i++) { 

    for (j = 0; j < 1000; j++) { 

    a[ i ] = random(n) // random() takes constant time 

    } 

} 
+2

Пожалуйста, не публикуйте домашнее задание здесь. Прочитайте, как сделать Big-O, а затем спросите, есть ли у вас более конкретный вопрос, если у вас есть настоящая проблема. Прочитайте это: http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it –

+2

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это не что иное, как ленивый домашнее задание, которое не показывает никаких доказательств усилий или инициативы. –

+0

Я пытался это сделать, у меня так много проблем. Для первой строки кода я говорю, что это «n», но не уверен в остальном. – Davidson

ответ

-1
int sortedArray []; 

for (i = 0; i < n; i++) { 

    for (j = 0; j < i; j++) { 

    readArray(a) // reads in an array of n values 

    sortedArray = sort(a) // sort() takes n log n operations 

    } 

} 

Я также имел эту проблему. На 2-й строке у меня есть «n», 3-е место у меня есть n^2, 4-е место у меня n, а на 5-м я n nn n. Для моей сложности времени у меня есть O (n^2).

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