Hace un tiempo nos dieron la tarea de escribir un programa c que ordena una matriz de n números usando un max-heap d-ary (un montón donde cada nodo tiene hasta d hijos). El programa necesitaba pedirle al usuario que ingrese el valor de d, un valor entre 2 y el tamaño de la matriz. Mientras estaba revisando mi programa, accidentalmente ingresé 1 como el valor de d, y de alguna manera el algoritmo logró clasificar la matriz correctamente usando un montón de 1 aria, aunque tardó mucho más tiempo que los valores normales de d.tipo de montón 1-aria?
¿Cómo es eso posible? Un montón de 1-aria ni siquiera es un montón, es como una lista, cada nodo tiene un solo hijo. ¿Alguien puede explicar cómo podría suceder esta clasificación?
Entonces, ¿qué sucedió realmente es una variante ineficiente del tipo de inserción? – Bob
Era un tipo de inserción estándar, seguido de una serie de operaciones "pop" que implicaba mover todos los elementos del montón de "n" a "n-1". –