¿Qué método se ejecuta más rápido para una matriz con todas las claves idénticas, tipo burbuja o tipo inserción?

En ambos casos, depende de qué tan bien lo implemente. La ordenación de burbujas mal implementada se ejecutará en O (n ^ 2) al tiempo que agrega la comprobación simple para finalizar si una iteración no hizo ningún intercambio lo reducirá a O (n) (se realizará una iteración completa a través de la matriz y sin elementos intercambiado).

De la misma manera, para la inserción, ordénelo, con la peor implementación será O (n ^ 2) [Supongo que eso es lo que Gregory Schoenmakers quería decir, supongo. ¿Que la peor versión del tipo de inserción puede barrer toda la lista cada vez?]. Ordenación de inserción razonablemente bien implementada (con la búsqueda del lugar desde el final de la matriz para que siempre se pase el tiempo buscando a través de este fragmento que luego será barrido de todos modos) también será O (n) como para cada elemento del lugar al final de la lista se asignará y no se realizarán intercambios.

Si por todas las teclas idénticas te refieres al mismo tipo, entonces sí. El tipo de burbuja es la técnica más ineficaz, pero la más fácil de implementar. La ordenación por inserción es más eficiente porque desplaza los elementos al final de la matriz. Busque la notación O para las técnicas de clasificación.

Si todas las claves son idénticas, entonces la ordenación de burbujas hará un solo barrido de la lista sin realizar ningún intercambio, por lo que se ejecutará en tiempo lineal.

Sin embargo, la ordenación por inserción tiene que barrer la lista ordenada cada vez para determinar dónde insertar cada elemento para que aún se ejecute en tiempo cuadrático.

EDITAR:

Si se anticipa que una lista ya está ordenada en gran medida, el orden de inserción se puede modificar:

FOR i = 1 TO n-1 // supone una lista no vacía, es decir, la lista [0] existe
SI lista [i] inserte la lista [i] en la lista [0] … lista [i-2]
TERMINARA SI
Siguiente yo

Lo que hace esta modificación es evitar comparaciones con el resto de la lista ordenada si el elemento que se va a insertar es el más grande hasta ahora, lo que significa que ya está en el lugar correcto. Donde todas las claves son idénticas, la ordenación tendría lugar en un tiempo lineal como lo haría la ordenación por burbuja.

More Interesting

¿Has visto algún trabajo hacia el cierre transitivo de la alineación de secuencias y las matrices de sustitución?

¿Cómo se representa a los usuarios en código en el sitio web de Quora o en cualquier otro sitio de redes sociales?

¿Cuál es la mejor optimización de código con menos líneas?

¿Los estudiantes de pregrado de CS estadounidenses entienden todas las matemáticas en sus libros de texto conceptualmente?

¿Qué se entiende por 'profundidad' en DFS?

¿Cuál es el mejor algoritmo para encontrar la ruta más corta en un gráfico orientado, donde algunos bordes están bloqueados y las teclas están en algún lugar de los nodos?

¿Cuáles son las aplicaciones de la estructura de datos en C?

En la complejidad temporal de un algoritmo, ¿por qué puede considerarse útil que una operación elemental tome "tiempo unitario"?

Estoy tratando de incrementar un elemento de matriz de caracteres inicializado a cero pero no puedo, ¿por qué?

¿Cómo funcionan los algoritmos de clasificación en un sistema distribuido grande?

¿Cómo debería abordar la mejora de mi algoritmo, si mi conjunto de pruebas arroja malos resultados?

¿Qué estructura de datos es adecuada para almacenar una gran cantidad de cadenas en Java?

¿Es posible hacer un programa algorítmico de intercambio oscilante?

Cómo explorar los datos para elegir un algoritmo de aprendizaje automático

Cómo crear un árbol binario de búsqueda binaria para los datos: 10, 8, 15, 7, 3, 6, 12, 5, 9,17