Contamos el número de lecturas y escrituras de elementos de matriz. Para hacer el ordenamiento de burbujas, necesita accesos (la escritura inicial hasta el final, luego, en el peor de los casos, dos lecturas y dos escrituras para hacer swaps). Para hacer la búsqueda binaria, necesitamos ( para búsqueda binaria, luego, en el peor de los casos, para desplazar los elementos de la matriz a la derecha, luego 1 para escribir el elemento de la matriz en su posición correcta).1 + 4 nnorte2 logn + 2 n + 12 lognorte2 n
Entonces, ambos métodos tienen la misma complejidad para las implementaciones de matrices, pero el método de búsqueda binaria requiere menos accesos a la matriz a largo plazo ... asintóticamente, la mitad. Hay otros factores en juego, naturalmente.
En realidad, podría usar mejores implementaciones y solo contar los accesos a la matriz real (no los accesos al elemento que se va a insertar). Podría hacer para ordenar burbujas, y para búsqueda binaria ... así que si el acceso al registro / caché es barato y el acceso a la matriz es costoso, busque desde el final y cambie en el camino (burbuja más inteligente ordenar para la inserción) podría ser mejor, aunque no asintóticamente.2 n + 1Iniciar sesiónn + 2 n + 1
Una mejor solución podría implicar el uso de una estructura de datos diferente. Las matrices le dan acceso O (1) (acceso aleatorio), pero las inserciones y eliminaciones pueden costar. Una tabla hash podría tener O (1) inserciones y eliminaciones, los accesos costarían. Otras opciones incluyen BST y montones, etc. Podría valer la pena considerar las necesidades de uso de su aplicación para inserción, eliminación y acceso, y elegir una estructura más especializada.
Tenga en cuenta también que si desea agregar elementos a una matriz ordenada de elementos, una buena idea podría ser ordenar eficientemente los elementos , luego fusionar las dos matrices; Además, las matrices ordenadas se pueden construir de manera eficiente utilizando, por ejemplo, montones (clasificación de montón).metronortemetro