Hay muchos casos en que los árboles de red-back no son malos para la clasificación. Mi pruebas mostraron, en comparación con el tipo de combinación natural, que los árboles rojo-negro sobresalen donde:
Los árboles son mejores para Dups: Todas las pruebas en las que dups necesitan ser eleminated, algoritmo de árbol es mejor.Esto no es sorprendente, ya que el árbol puede mantenerse muy pequeño desde el principio, por lo que los algoritmos que están diseñados para el ordenamiento de arreglos en línea podrían pasar alrededor de segmentos más grandes durante más tiempo.
Árboles son mejores para Aleatorio: Todas las pruebas con algoritmo de árbol aleatorio son mejores. Esto tampoco es sorprendente, ya que en un árbol la distancia entre los elementos es más corta y el desplazamiento no es necesario. Por lo tanto, insertarlo repetidamente en un árbol podría requerir menos esfuerzo que ordenar una matriz.
Así que tenemos la impresión de que el tipo de fusión natural solo se destaca en casos especiales ascendentes y descendentes. Que ni siquiera se puede decir para ordenar rápidamente.
Gist con los casos de prueba here.
P.S .: se debe tener en cuenta que el uso de árboles para la clasificación no es trivial. Uno no solo debe proporcionar una rutina de inserción, sino también una rutina que puede linealizar el árbol a una matriz. Actualmente estamos utilizando una rutina get_last y una predecesora, que no necesita una pila. Pero estas rutinas no son O (1) ya que contienen bucles.
Generalmente, los árboles son preferidos para buscar. Clases: Ordenar una vez. Árboles: busca muchas veces. –
Una caminata en orden sobre un árbol toma O (1) vez por nodo visitado, por lo que debe ejecutarse en O (n) no en O (n lg n). – momeara
Con el fin de caminar necesita espacio de pila o bien no O (1) get_first y successor. –