小编lab*_*eux的帖子

时间复杂度或代码的大O.

我有这个具有最大堆属性的数组.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);
}
Run Code Online (Sandbox Code Playgroud)

我脑子里有两个解决方案.第一:时间复杂度为O(7*logn)或简单为O(logn).

然后第二个是O(1/2*n*logn)或O(nlogn),因为1/2只是一个常数,我假设因为迭代次数是7,这几乎与一半相同heap_size,我可以忽略1/2.因此O(nlogn)

哪一个是正确的?

c heap time-complexity binary-heap data-structures

3
推荐指数
1
解决办法
184
查看次数

标签 统计

binary-heap ×1

c ×1

data-structures ×1

heap ×1

time-complexity ×1