¿Cómo implementar la función de clasificación en C ++?



Este artículo le ayudará a explorar la función Ordenar en c ++ y, en el proceso, le dará una demostración detallada del concepto.

Clasificación es una de las funciones más básicas y útiles aplicadas a los datos. Su objetivo es organizar los datos de una manera particular, que puede aumentar o disminuir según los requisitos. Hay una función incorporada en C ++ STL con el nombre de 'sort ()' que nos permite realizar un algoritmo de clasificación fácilmente. En este artículo exploraremos la función Ordenar en C ++,

En este artículo se tratarán los siguientes consejos:





Continuando con este artículo sobre la función Ordenar en C ++

Ordenar ( ) función

Es una función incorporada del archivo de encabezado de algoritmo que se usa para ordenar los contenedores como una matriz, vectores en un orden específico. Internamente, esta función se implementa como clasificación rápida
Quicksort es un algoritmo de divide y vencerás. Quicksort primero divide una gran lista de elementos en dos sublistas más pequeñas: los elementos inferiores y los elementos superiores. Quicksort luego ordena de forma recursiva las sublistas.



Los pasos son los siguientes:
1. Elija un elemento aleatorio (generalmente el último elemento), llamado pivote, de la lista.
2. Reordene la lista de tal manera que todos los elementos con valores menores que el pivote vengan antes del pivote, mientras que todos los elementos con valores mayores que el pivote vengan después y los valores iguales puedan ir en cualquier dirección. Este proceso se llama operación de partición.
3. Ordene de forma recursiva la sublista de elementos menores y la sublista de elementos mayores, seleccione de nuevo un pivote en la sublista y divídalos.
El caso base de la recursividad son listas de tamaño cero o uno, que nunca necesitan ser ordenadas y, por lo tanto, combinándolas ordenamos nuestra lista.

objetos mutables e inmutables en java

La ordenación rápida es más rápida en la práctica que otros algoritmos O (n log n) como la ordenación por inserción o la ordenación por burbujas. Quicksort se puede implementar con un algoritmo de particionamiento in situ, lo que significa que todo el ordenamiento se puede realizar con solo O (log n) espacio adicional. Quicksort no es un tipo estable.
Su complejidad es la siguiente:
Mejor caso: O (n log n)
Peor caso: O (n ^ 2)
Caso promedio - O (n log n)

Sintaxis:
ordenar (primero, último)
Aquí,
primero: es el índice (puntero) del primer elemento del rango que se va a ordenar.
último: es el índice (puntero) del último elemento del rango que se va a ordenar.
Por ejemplo, queremos ordenar los elementos de una matriz 'arr' de la posición 1 a la 10, usaremos sort (arr, arr + 10) y clasificará 10 elementos en orden ascendente.
Valor devuelto
Ninguna



Complejidad

El promedio de una complejidad de clasificación es N * log2 (N), donde N = último - primero.

Rango de datos
El objeto en el rango [primero, último) se modifica.

Excepciones
Las sobrecargas con un parámetro de plantilla que se denomina ExecutionPolicy informan los errores de la siguiente manera:
Si el algoritmo no puede asignar memoria, std :: bad_alloc se lanza como una excepción.
Si la ejecución de una función se invoca como parte del algoritmo, genera una excepción std :: terminate.

Continuando con este artículo sobre la función Ordenar en C ++

Ejemplo: para ordenar los datos en orden ascendente:

#include usando el espacio de nombres std int main () {int matriz [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (matriz) / sizeof (matriz [0] ) // 'sizeof' da el tamaño de la matriz total, es decir, el tamaño de cada carácter * no. de caracteres // para obtener no. de caracteres // dividimos el tamaño de (matriz) con el tamaño de cualquier carácter de la matriz // aquí está matriz [0] sort (matriz, matriz + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Salida:

Salida- Función de clasificación en C ++ - Edureka

Explicación

En el ejemplo anterior, vemos que la función sort () por defecto ordena una matriz en orden ascendente.

tipos de estructuras en selenio

Continuando con este artículo sobre la función Ordenar en C ++

Ejemplo: para ordenar los datos en orden descendente:

Para ordenar los datos de la matriz en orden descendente, necesitamos introducir un tercer parámetro que se usa para especificar el orden en el que se ordenarán los elementos. Podemos usar la función 'mayor ()' para ordenar los datos en orden descendente.

#include usando el espacio de nombres std int main () {int arreglo [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (arreglo) / sizeof (arreglo [0] ) ordenar (matriz, matriz + n, mayor ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Salida:

Exp l una nación
Aquí la función sort () hace una comparación de una manera que antepone un elemento mayor.

Continuando con este artículo sobre la función Ordenar en C ++

Partial_sort

C ++ STL nos proporciona una función de clasificación parcial, la función es similar a la función sort () pero, a diferencia de la función sort (), no se usa para clasificar todo el rango, sino que se usa para clasificar solo una subparte. Ordena los elementos en el rango de [primero, último), de tal manera que los elementos antes del elemento intermedio se clasifican en orden ascendente, mientras que los elementos posteriores al medio se dejan como están.

Se puede usar para encontrar el elemento más grande si usamos un objeto de función para ordenar la primera posición

Ejemplo

#include #include #include usando el espacio de nombres std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr parcial_sort (vec.begin (), vec.begin () + 1, vec.end (), mayor ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Salida:

Explicación:
El código anterior se puede usar para encontrar el número más grande en una serie, para encontrar el número más pequeño en una serie solo necesitamos eliminar el comando mayor.

Por lo tanto, hemos llegado al final de este artículo sobre 'Función de clasificación en C ++'. Si desea obtener más información, consulte Java Training de Edureka, una empresa de aprendizaje en línea de confianza. Edureka's El curso está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog y nos pondremos en contacto con usted lo antes posible.