PUERTA | GATE-CS-2015 (Conjunto 2) | Pregunta 27

Considere un árbol binario completo donde los subárboles izquierdo y derecho de la raíz son montones máximos. El límite inferior del número de operaciones para convertir el árbol en un montón es
(A) Ω(logn)
(B) Ω(n)
(C) Ω(nlogn)
(D) Ω(n 2 )

Respuesta: (A)
Explicación: La respuesta a esta pregunta es simplemente la función max-heapify. La complejidad de tiempo de max-heapify es O (Log n) ya que recurre como máximo a través de la altura del montón.

// A recursive method to heapify a subtree with root at given index
// This method assumes that the subtrees are already heapified
void MinHeap::MaxHeapify(int i)
{
    int l = left(i);
    int r = right(i);
    int largest = i;
    if (l < heap_size && harr[l] < harr[i])
        largest = l;
    if (r < heap_size && harr[r] < harr[smallest])
        largest = r;
    if (largest != i)
    {
        swap(&harr[i], &harr[largest]);
        MinHeapify(largest);
    }
}

Consulte Montón binario para obtener más información.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *