Introducción a la ordenación en C ++

Al tener una colección de elementos para ordenar, la ordenación ayuda a organizar los elementos en el registro según la relación de orden. Considere un registro de archivo que contiene mucha información, para acceder a una lista desde el registro es necesario tener un campo clave para señalar la ubicación actual del elemento. Por ejemplo, considere una lista de nombres en la base de datos, podría ordenarse alfabéticamente. La clasificación colocó un papel importante en el campo de las computadoras y la tecnología. Veamos más en este artículo.

¿Qué es la clasificación en C ++?

La clasificación es el concepto básico utilizado por el programador o investigador para clasificar las entradas requeridas. El orden de complejidad viene dado por 0 (N * log (N)). Ordenar una entrada facilita la resolución de muchos problemas, como los elementos de búsqueda, máximo y mínimo. Aunque una clasificación organiza los datos en la secuencia, la eficiencia del proceso es muy importante, y se basa en dos criterios: - Tiempo y memoria necesarios para realizar la clasificación de los datos dados. El tiempo se mide contando las comparaciones de las claves utilizadas. Hay muchos algoritmos disponibles para ordenar. En general, la clasificación en C ++ se distingue en dos tipos:

  1. Clasificación interna
  2. Clasificación externa

Sintaxis y Ejemplo

Sintaxis:

C ++ utiliza la función incorporada sort () para sus algoritmos, para clasificar los contenedores como vectores, matrices.

Ordenar (matriz, matriz + tamaño);

Ejemplos:

#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)
#include
using namespace std;
int main ()
(
int ins(12) = ( 19, 13, 5, 27, 1, 26, 31, 16, 2, 9, 11, 21);
cout<<"\nInput list is \n";
for(int i=0;i<12;i++)
(
cout < )
for(int k=1; k<12; k++)
(
int t = ins(k);
int j= k-1;
while(j>=0 && t <= ins(j))
(
ins(j+1) = ins(j);
j = j-1;
)
ins(j+1) = t;
)
cout<<"\nSorted list is \n";
for(int i=0;i<12;i++)
(
cout < )
)

Salida:

¿Como funciona?

Para comenzar, tomaremos Clasificación rápida, que se considera un método importante entre varios tipos de clasificación. La clasificación básica de una matriz adopta un enfoque Quicksort. Existen diferentes formas de implementar la clasificación, el objetivo de cada una de estas técnicas es el mismo que comparar dos elementos e intercambiarlos con la variable temporal. En este artículo, discutiremos la clasificación más importante utilizada para la implementación. Los siguientes son:

  1. Ordenamiento de burbuja
  2. Tipo de inserción
  3. Ordenación rápida
  4. Selección Ordenar

Hay Merge Sort, radix sort, tape sorting que podemos discutir más adelante. Primero, iremos con Bubble sort.

1. Ordenar burbujas

La clasificación de burbujas es uno de los métodos de clasificación más simples que podemos usar para aplicaciones. En esta técnica, se realizan intercambios sucesivos a través de los registros que se ordenarán. En cada paso, compara la clave con los datos e intercambia los elementos si no está en el orden deseado. La clasificación se realiza con los elementos adyacentes en el momento en que solo se coloca un elemento en el lugar ordenado después de un intercambio.

Ejemplo: consideremos una matriz sin clasificar A () = (6, 2, 4, 7, 1)

6 624 47 71
A (0)A (1)A (2)A (3)A (4)

Paso 1: Comparando A (0)> A (1), si la condición es verdadera, cambie el elemento (6> 2) verdadero, coloque 2 en A (0). Del mismo modo, todos los pasos siguen lo mismo hasta que la matriz se ordena.

Ahora la matriz es A () = (2, 6, 4, 7, 1)

Paso 2: 6 se compara con 4. Como 6 es mayor que 4. Por lo tanto, 6 y 4 se intercambian.

Ahora la matriz es A () = (2, 4, 6, 7, 1)

Paso 3: El elemento 6 se compara con 7. Como 6 <2 y los elementos están en orden ascendente, los elementos no se intercambian.

La matriz ordenada es A () = (2, 4, 6, 7, 1).

Continúe el proceso hasta que se ordene la matriz.

2. Ordenar por inserción

En esta técnica, comenzamos con el segundo elemento de datos asumiendo que el primer elemento ya está ordenado y que la comparación se realiza con el segundo elemento y el paso continúa con el otro elemento posterior. En una matriz de N elementos, es necesario tener pases N-1 para tener un elemento ordenado.

Considere una matriz A () = (8, 3, 6, 1)

836 61

Paso 1: el primer elemento busca el elemento más grande de la matriz para intercambiar. Si es más grande, permanece igual y se mueve al segundo elemento, aquí 8 es mayor que todo, no se realiza ningún intercambio.

836 61

Paso 2: intercambio con el segundo elemento

386 61

Paso 3: intercambio con el tercer elemento

36 681

Paso 4: intercambiando con el cuarto elemento

136 68

3. Clasificación rápida

Esta técnica sigue el algoritmo de divide y vencerás y se considera muy eficiente y más rápido para grandes matrices. Se dividen en tres subsecciones: una izquierda, una derecha y el medio. El elemento del medio tiene un valor único y se denomina pivote. El mecanismo es así, el elemento en el segmento izquierdo no debe tener una clave más grande que el elemento central y el elemento no en la derecha tiene una clave que es más pequeña que la del elemento central. Ahora comencemos con una ilustración del proceso de clasificación. Quicksort utiliza un concepto recursivo mientras ordena la subparte. La matriz se divide en una subparte, nuevamente los segmentos izquierdo y derecho se dividen mediante la conquista. Aquí en este ejemplo, considerando que el último elemento tiene pivote y el primer elemento se supone bajo. Considere un elemento de matriz

492211dieciséis5630

Tomar el elemento más a la derecha tiene el elemento pivote = 30

dieciséis2211305649

El elemento mayor que el pivote se coloca hacia la izquierda, más pequeño a la derecha.

dieciséis22115649

El puntero se coloca en el pivote y se divide alrededor de un pivote.

1122dieciséis5649

Las subpartes se ordenan individualmente.

11dieciséis22304956

Finalmente, obtuvimos una matriz ordenada.

4. Selección de selección

Esta técnica también se denomina intercambio de clasificación y realiza operaciones de búsqueda y clasificación de operación dual. La implementación toma una selección directa como se define a continuación. Aquí, se requiere identificar el elemento más pequeño presente en la matriz y este elemento se ordena en la primera posición, luego, se identifica el segundo elemento más pequeño y se ordena en la segunda posición. El orden de selección sale de su bucle cuando la subparte sin clasificar se vacía. La complejidad del tiempo se da como O (n 2 ).

Considere la siguiente matriz:

6326132312

1. Encontrar el elemento más pequeño y colocarlo al comienzo y se intercambia con la posición.

1226132363

2. El segundo elemento a (1) se identifica en comparación con el elemento mínimo y colóquelo en la segunda posición, de manera similar, el pase continúa.

1213262364

Salida final ordenada

1213232664

Conclusión

Para concluir, este artículo se centró en los conceptos de clasificación y su mecanismo de trabajo. Todas estas técnicas de clasificación utilizan conceptos de procesamiento paralelo. La clasificación forma un bloque de construcción central en los algoritmos de estructuración para resolver los problemas de datos en el mundo real al ordenar el conjunto de valores de acuerdo con los requisitos.

Artículos recomendados

Esta es una guía para la Clasificación en C ++. Aquí discutimos la Introducción y la Sintaxis con ejemplos junto con Cómo funciona. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Ordenar en Tableau
  2. Iterador en C ++
  3. Funciones de matriz en C
  4. Heap Sort en C
  5. ¿Cómo se realiza la ordenación en PHP?
  6. Heap Sort en Python
  7. Iterator en Java
  8. Las 11 características y ventajas principales de C ++
  9. Iterador en Python | Beneficios y ejemplos de Python