Creo que lo primero a considerar es ¿qué es una operación compatible?
¿"Insertar un valor con una clave fija específica" (por ejemplo, para claves tomadas del reino entero, insertar con clave = 3) corresponde a una operación admitida para el montón mínimo?
No, porque esa operación se puede implementar de manera trivial con operaciones más generales compatibles. Del mismo modo, la inserción de 2 elementos a la vez se puede hacer con la insert
operación existente .
Por otro lado, la insert
operación no se puede definir de otra manera que exponiendo los detalles de implementación. Es prácticamente lo mismo para las operaciones enumeradas en la página de wikipedia, heapify
excepto que probablemente podrían implementarse mediante una secuencia de insert
.
En otras palabras, hay operaciones elementales proporcionadas en el tipo, que están estrechamente vinculadas a los detalles de implementación para que funcionen bien, y hay otras operaciones que no cumplen con esa regla y, por lo tanto, pueden implementarse como combinaciones de los canónicos.
Con esa definición en mente, ¿cree que la tecla de aumento podría implementarse con otras operaciones compatibles de forma exclusiva, sin pérdida de rendimiento? Si es así, entonces no es una operación compatible con la definición anterior, de lo contrario, es posible que tenga razón.
Podría decirse que la definición de una operación compatible que proporciono es mía, que yo sepa. No es formal y, por lo tanto, está sujeto a discusión (aunque me parece bastante claro). Sin embargo, me alegraría si alguien pudiera proporcionar una fuente que defina clara e inequívocamente qué es una operación compatible para los tipos de datos, o al menos la defina en mejores términos que la mía (¿esa definición se da en CLR? No tengo una copia )
Mi segundo punto será sobre cómo definimos una cola prioritaria (que es la razón de ser de los montones binarios). ¿Es la increase_key
operación necesaria para ese tipo de datos, es decir, para su uso adecuado?
Como puede ver, mi ángulo tiene que ver con las definiciones. Realmente no proporciono una respuesta a sus preguntas, solo algunos consejos, por lo que las mejoras son bienvenidas.