¿Qué es la clasificación estable?

OK, considera que tienes una matriz con datos como

35 23 45 26 81 26 34

en los índices 0,1,2,… .6 (en este ejemplo, los datos 26 están en los índices 3 y 5 respectivamente).

Si el algoritmo de ordenación, después de ordenar los contenidos, no cambia la secuencia de * contenido similar * en el que aparecen, se llama ordenación estable.

Entonces, si después de ordenar, los datos son los siguientes:

23 26 26 34 35 45 81 (nota importante aquí: -) y (vea los datos similares) si 26 del índice 3 se coloca antes del 26 en el índice 5, entonces este es un tipo estable más inestable. Considere el siguiente ejemplo:

Fuente de la imagen: – google

Por lo tanto, la ordenación estable mantiene el orden de originalidad / apariencia de los contenidos / o contenidos similares de los datos.

Espero eso ayude.

Hay n algoritmos de clasificación diferentes disponibles para su uso, mientras que algunos de ellos son estables y otros inestables.

Ejemplo: Tengamos una lista de canciones, y primero la ordenaremos por nombre de canción, y luego por nombre de artista.

Lista original:

Sno Name Artist
1 Lo mejor de mí Bryan Adams
2 Estoy listo Bryan Adams
3 Nube Número Nueve Bryan Adams
4 Deja fuera Linkin Park
5 Lo que he hecho Linkin Park
6 Al final Linkin Park
7 Hola, Pink Floyd
8 Otro ladrillo en la pared Pink Floyd
9 Cómodamente adormecida Pink Floyd

Ordenemos esta ArrayList según el nombre de la canción .

Sno Name Artist
8 Otro ladrillo en la pared Pink Floyd
3 Nube Número Nueve Bryan Adams
9 Cómodamente adormecida Pink Floyd
7 Hola, Pink Floyd
2 Estoy listo Bryan Adams
6 Al final Linkin Park
4 Deja fuera Linkin Park
1 Lo mejor de mí Bryan Adams
5 Lo que he hecho Linkin Park

Ahora si ordeno esta lista por artista

Sno Name Artist
3 Nube Número Nueve Bryan Adams
2 Estoy listo Bryan Adams
1 Lo mejor de mí Bryan Adams
6 Al final Linkin Park
4 Deja fuera Linkin Park
5 Lo que he hecho Linkin Park
8 Otro ladrillo en la pared Pink Floyd
9 Cómodamente adormecida Pink Floyd
7 Hola, Pink Floyd

La lista ahora está ordenada por Artista, pero dentro de las canciones por el mismo artista, la lista permanece ordenada por el nombre de la canción, es decir, todas las canciones de Bryan Adams vienen en primer lugar, y dentro de ellas continúan clasificadas por el Nombre de la canción. Esto significa que esta clasificación es estable. Los arreglos ya presentes no se perturban.

La diferencia de esta naturaleza de los algoritmos depende de la forma en que recoge un elemento de un lugar a otro. MergeSort e InsertionSort son de naturaleza estable , mientras que QuickSort no lo es.
ADICIÓN: QuickSort primero baraja aleatoriamente la lista para evitar el peor de los casos, por lo que definitivamente se pierden los arreglos.

Alguna información adicional, en Java , una lista con tipos de datos primitivos se clasifica utilizando QuickSort, ya que solo tienen una clave para clasificar y ese es su valor. Pero para los tipos de datos definidos por el usuario, Java usa mergesort, ya que querrá que la estabilidad esté allí. (como vimos en el ejemplo, Song es el tipo de datos definido por el usuario)

Aquí está el programa de muestra que creé para probar el escenario dado:
Ideone.com

More Interesting

¿Es la programación una superpotencia? ¿Por qué o por qué no?

Te dan n pilas con p monedas, y cada jugador elimina al menos 1 moneda. El número de monedas eliminadas por un jugador no puede ser eliminado por el otro. ¿Quién ganará?

Cómo hacer un robot que pueda resolver un laberinto de líneas

¿Debería seleccionar siempre el algoritmo con el menor orden de complejidad?

Cómo resolver un problema después de unos días si no pude encontrar la más mínima idea de cómo resolver ese problema

Cómo verificar si la suma de los números de la primera mitad y la segunda mitad de una matriz es la misma

¿Qué plataforma / herramienta / idioma debería ser bueno para la minería de texto?

¿Existe un algoritmo para determinar el algoritmo óptimo para ordenar un conjunto de datos en particular?

¿Se ha encontrado alguna solución para los problemas de NP completo?

Cómo construir un gráfico si se proporciona el recorrido DFS y el recorrido BFS

¿Cuál es la relación entre la complejidad del algoritmo y la complejidad del software?

¿Qué es la estructura de datos inmutable?

Dado un conjunto entero tal que cada elemento ocurre 3 veces, excepto un elemento, que ocurre solo una vez, ¿cómo encuentro ese único elemento en el espacio O (1) y en la complejidad del tiempo O (n)?

Cómo evitar que el algoritmo de google para 'quiso decir' afecte mi sitio

¿Cuál es un ejemplo de un algoritmo iterativo que se ejecuta en [matemáticas] O (2 ^ n) [/ matemáticas]?