estoy tratando de crear una aplicación inusual conjunto asociativo que es muy eficiente con el espacio, y necesito un algoritmo de ordenación que cumpla con todos los siguientes:Tipo estable y eficiente?
- estable (no cambia el orden relativo de los elementos con igualdad de teclas.)
- en el lugar o casi en el lugar (o (log n) pila está bien, pero no o (n) de uso del espacio o montón asignaciones.
- o (N log N) complejidad del tiempo.
También tenga en cuenta que la estructura de datos que se ordenará es un arra y
Es fácil ver que hay un algoritmo básico que coincide con cualquiera de estos dos (inserción tipo coincide con 1 y 2, fusión tipo coincide con 1 y 3, tipo de ordenamiento coincide con 2 y 3), pero no puedo por la vida de yo encuentro cualquier cosa que coincida con los tres de estos criterios.
¿Sus datos tienen actualizaciones regulares? Si es así, poner una gran matriz es una mala idea. Considere una estructura que puede estar fragmentada, como un árbol B o una cuerda. – finnw
Parece extraño estar contento con la complejidad del tiempo O (n log n), pero tiene un problema con el uso del espacio O (n). ¿Podría explicar en detalle cuál es su objetivo real? existe el riesgo de que caiga en la trampa del problema XY. – mikera