Cómo usar la función stable_sort() en C++

Como Usar La Funcion Stable Sort En C



Hay varias funciones en C++ para ordenar los elementos de la secuencia en un orden específico. Similar a la función de ordenación, la ordenación_estable se usa para ordenar los elementos en el rango (primero, último). La diferencia clave entre ellos es que el clasificación_estable mantiene el orden relativo de los elementos con valores iguales.

En este tutorial detallado, mostraremos el funcionamiento del clasificación_estable() en C++.

Cómo usar la función stable_sort() en C++

En C++, el clasificación_estable() es un algoritmo de biblioteca estándar que organiza los elementos en orden creciente y mantiene el mismo orden para los elementos equivalentes. Esto significa que si dos elementos son iguales, el elemento que aparece primero en el contenedor antes de ordenar seguirá apareciendo primero en la lista ordenada. Esta función funciona dividiendo repetidamente el contenedor (matrices, vectores, listas enlazadas), clasificándolos por separado y luego combinándolos para obtener el contenedor ordenado. viene bajo el archivo de cabecera.







La sintaxis general para usar el clasificación_estable() en C++ es:



clasificación_estable ( RandomAccessIterator primero , RandomAccessIterator último ) ;

Aquí el primero es el iterador que apunta al primer elemento en el rango a ordenar, y el último es el iterador que apunta al elemento después del último elemento en el rango que se va a ordenar.



El clasificación_estable() La función usa un orden no decreciente para clasificar las entradas en el rango [primero, último], es decir, desde el elemento más pequeño hasta el más grande. La función por defecto compara los artículos a través de la Operador menor que (<).





Ejemplo 1

Considere el siguiente código de ejemplo, en este código, hemos creado el lista de vectores y lo inicializó con algunos valores. A continuación, usamos el clasificación_estable() para ordenar los valores del vector dado en orden ascendente. Los vectores sin ordenar y ordenados se imprimen en la consola utilizando el bucle basado en rango.

#incluir

#incluir

#incluye

usando el espacio de nombres estándar ;

 

En t principal ( )

{

vector < En t > lista = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

cout << 'Números antes de ordenar: ' ;

para cada ( lista. comenzar ( ) , lista. fin ( ) , [ ] ( En t X ) {

cout << X << ' ' ;

  } ) ;

clasificación_estable ( lista. comenzar ( ) , lista. fin ( ) ) ;

cout << ' \norte Números después de ordenar: ' ;

para cada ( lista. comenzar ( ) , lista. fin ( ) , [ ] ( En t X ) {

cout << X << ' ' ;

  } ) ;

 

  devolver 0 ;

}




Ejemplo 2

En el ejemplo a continuación, hemos creado una matriz de enteros y la inicializamos con algunos valores. Luego, por defecto, el clasificación_estable() ordena los elementos en orden ascendente:

#incluir

#incluye

usando el espacio de nombres estándar ;

En t principal ( )

{

    En t formación [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

    En t norte = tamaño de ( formación ) / tamaño de ( formación [ 0 ] ) ;

cout << 'La matriz original es: \norte ' ;

    para ( En t i = 0 ; i < norte ; ++ i ) {

cout << formación [ i ] << ' ' ;

    }

clasificación_estable ( formación , formación + norte ) ;

cout << ' \norte La matriz después de ordenar es: \norte ' ;

    para ( En t i = 0 ; i < norte ; ++ i ) {

cout << formación [ i ] << ' ' ;

    }

    devolver 0 ;

}

Ejemplo 3

El clasificación_estable toma el tercer parámetro para especificar el orden de clasificación del elemento. En el siguiente ejemplo, hemos utilizado el mayor que() funcionar con clasificación_estable() para ordenar los elementos de la matriz en orden descendente

#incluir

#incluye

usando el espacio de nombres estándar ;

En t principal ( )

{

    En t formación [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

    En t norte = tamaño de ( formación ) / tamaño de ( formación [ 0 ] ) ;

cout << 'Matriz original: \norte ' ;

    para ( En t i = 0 ; i < norte ; ++ i ) {

cout << formación [ i ] << ' ' ;

    }

clasificación_estable ( formación , formación + norte , mayor que < En t > ( ) ) ;

cout << ' \norte Matriz después de ordenar: \norte ' ;

    para ( En t i = 0 ; i < norte ; ++ i ) {

cout << formación [ i ] << ' ' ;

    }

    devolver 0 ;

}

Línea de fondo

El clasificación_estable() La función en C ++ es un algoritmo de biblioteca estándar que se utiliza para ordenar elementos en un contenedor en orden no decreciente mientras se mantiene el orden relativo de los elementos en un contenedor con los mismos valores. Se puede usar con diferentes contenedores como matrices, vectores y listas enlazadas. Además, se necesita un tercer parámetro para especificar el orden de clasificación de los elementos.