¿Por qué la clasificación rápida se considera una clasificación inestable?

Primero diré la respuesta qué es la clasificación estable e inestable.

Clasificación estable: clasificación por inserción, clasificación por fusión, clasificación por burbujas.

Ordenación inestable: ordenación de montón, ordenación de selección ordenación de shell, ordenación rápida.

La clasificación estable son aquellos que mantienen la posición relativa del elemento después de la clasificación, es decir, si tenemos los siguientes elementos 1,9 8,8,9,2,4,5, podemos representar como

a-1, b-9, c-8, d-8, e-9, f-2, g-4, h-5 el orden de clasificación será 1,2,4,5,8,8,9, 9 9

aquí podemos observar que el orden es como a-1, f-2, g-4, h-5, c-8, d-8, b-9, e-9 después de la clasificación de c-8 antes de d- 8, es decir, estamos manteniendo el orden después de ordenar el orden relativo de manera similar en b-9 viene de e-9, por lo que es una clasificación estable.

Ordenar inestable: pero si este es el arreglo después de ordenar

1,2,4,5,8,8,9,9 que puedo escribir a-1, f-2, g-4, h-5, c-8, d-8, e-9, b-9 , que era antes de ordenar, puede ver que e-9 viene antes que d-9, por lo que ambos tienen el mismo valor pero el orden no se mantiene, por lo que dicha ordenación se llama ordenación inestable.

¿Por qué la ordenación rápida es una ordenación inestable?

Tomemos el ejemplo 1,9 8,8,9,2,4,5 ahora tenemos que ordenar usando la ordenación rápida.

primero consideraremos que el elemento fundamental es el último elemento, es decir, 5

pivote = a [fin]

ahora dos índices i = inicio-1; j = inicio, es decir, i = -1 y j = 0 ahora desde la izquierda de la matriz, sigue viendo el elemento si es menor que pivote, es decir, 5 intercambia con el índice de la mayoría del elemento izquierdo por i y finalmente coloca el elemento pivote en la posición donde todo el elemento se fue a pivote es menor que pivote y derecha mayor. Ahora empezar

1,9 8,8,9,2,4,5

1 <5 intercambiando i = 0, j = 1

los siguientes 9,8,8,9 no son menos 5, por lo que no hay intercambio, por lo que j será 4. ahora los siguientes 2 <5, así que no se intercambian

1,2,8,8,9,9,4,5 i = 1 y j = 5, por lo que ahora el 9 que estaba antes se intercambia después de 9, que estaba relativamente detrás del primer 9, tan inestable nuevamente 4 <5, así que intercambia 1,2 , 4,8,9,8,9,8,5

finalmente intercambie el pivote con i = 3 para 1,2,4,5,8,9,8,9.

ahora vea que 8 y 9 se intercambian con los 8,9 posteriores, que ha cambiado el orden relativo.

a-1, b-9, c-8, d-8, e-9, f-2, g-4, h-5

  • a- 1, f-2, g-4, h-5, d-8, e-9, c-8, b-9. ahora el orden ha cambiado d-8 y e-9 es anterior a c-8, b-9

More Interesting

Cómo hacer un método que devuelva un arrayList que ha ordenado el número de Strings en cada fila del archivo

¿Dónde se usan realmente las estructuras de datos?

¿Cuáles son algunos algoritmos que usamos diariamente que tienen complejidades [matemáticas] O (n), O (n ^ 2), [/ matemáticas] y [matemáticas] O (\ log n) [/ matemáticas]?

¿Por qué los algoritmos tienen tanta importancia en la programación?

Cómo escribir un programa en C para implementar un algoritmo de planificación de prioridades, junto con la visualización del diagrama de Gantt

¿Existe un algoritmo rápido que, dada una cuadrícula de números, encuentre todas las rutas posibles que sumen a un número dado?

¿Cómo debo definir el orden de mi cromosoma en mi algoritmo genético?

Cómo resolver este problema de integración definitiva

¿Qué es una explicación intuitiva de la minimización de arrepentimiento contrafactual?

¿Necesito estudiar la teoría de estructuras de datos y algoritmos antes de resolver las preguntas en InterviewBit?

Cómo ejecutar cruces en algoritmos genéticos con cromosomas codificados por gráficos

¿Cuál es el tema más importante en la estructura de datos y algoritmos en la programación en C?

¿Cuál es el algoritmo correcto para realizar la diferenciación usando un programa de computadora para cualquier función ingresada por el usuario?

¿Hay algún algoritmo de corrector ortográfico de aprendizaje no supervisado?

¿Cuál es la mejor manera de aprender el comercio algorítmico en Python y probar modelos?