¿Cuáles son las complejidades temporales del montón?

Hay muchos tipos de montones, verifique estos:

Fuente: Heap (estructura de datos) – Wikipedia

de acuerdo con “Búsqueda de un elemento”, no creo que pueda usar las propiedades del montón para hacer esta tarea, me refiero a mirar esto:

Es un montón máximo, donde cada nodo es mayor que todos los nodos debajo de él, por ejemplo, 19 es mayor que 17, 3, 2 y 7.

En caso de que queramos buscar aquí, digamos que estamos buscando 4, empiezo desde la raíz, ahora necesito determinar a dónde debo ir, a la derecha o a la izquierda. Realmente no lo sabes, ya que, déjame insertar el elemento (4) aquí, por 3 veces, luego habrá 4 en el árbol que comienza con 19 y otros 4 en el árbol que comienza con 36, por lo que no puedo decidir , lo que solo yo puedo hacer es como lo que dijo Steven Srun aquí, puedes hacer una búsqueda de línea.

Un montón binario está diseñado para que el elemento mínimo (o elemento máximo si es un montón máximo) pueda ubicarse en tiempo constante porque es el primer elemento del montón.

Encontrar cualquier otro elemento lleva tiempo lineal porque el montón no está ordenado en orden ascendente o descendente. Una vez que se ha localizado un elemento, su eliminación lleva tiempo logarítmico.

Las inserciones siempre toman tiempo logarítmico.

Agregar / insertar un elemento es O (log N).

En general, no buscamos elementos en un montón, pero si lo desea, probablemente sea O (N) ya que solo puedo pensar en hacer una búsqueda lineal de la matriz.

Generalmente no eliminamos elementos arbitrarios. Por lo general, eliminamos el elemento “superior” que es el valor mínimo o máximo. Esa operación es O (log N) porque necesita modificar la posición de otro elemento para mantener el montón.

El caso promedio y el peor de los casos, creo, son los mismos para todos los escenarios.