У меня есть этот массив с максимальным свойством кучи. Временная сложность deleteMax равна O(logn). Если приведенный ниже код будет повторяться всего 7 раз, какова будет временная сложность приведенного ниже кода (большой O)?
int heap_size = 15;
int i, value, heap_array[]; // array is in the form of max heap
....
for(i = 0; i < 7; i++){ // iterates seven times
value = deleteMax(heap_array);
printf("%d ", value);
}
У меня в голове два решения. Во-первых: временная сложность равна O(7 * logn) или просто O(logn).
Тогда второй - O (1/2 * n * logn) или O (nlogn), поскольку 1/2 - это просто константа, и я предполагаю, что, поскольку число итераций равно 7, что почти такое же, как половина heap_size, я могу игнорировать 1/2. Таким образом, O(nlogn)
Какой из них будет правильным?
n/2
раз, это более интересно. - person xiaofeng.li   schedule 12.04.2017