Ordena los caracteres de una cadena en C ++

Ordena los caracteres de una cadena en C ++
La clasificación de una cadena se considera una organización en un orden ascendente o descendente, o cualquier orden proporcionado en C ++, que no es más que obtener las cadenas dadas en un orden apropiado o un pedido dado puede expresarse ya que las cadenas se clasifican en el acuerdo de pedido especificado. La salida de un programa de clasificación es una entrada reorganizada o una permutación de esa entrada. En C ++, existen varios métodos para clasificar las cadenas mediante la implementación de algoritmos de clasificación: clasificación de burbujas, clasificación de inserción, bibliotecas STL, etc. Estos métodos ordenaron los caracteres de la cadena en órdenes ascendentes o decrecientes.

Métodos de clasificación de cadena y caracteres de una cadena en c++

Hay varias estrategias de clasificación disponibles para organizar una cadena en un orden determinado. Entre ellos están:

Ordenamiento de burbuja

Uno de los algoritmos de clasificación más simples en C ++ es la clasificación de burbujas. Las cadenas se clasifican utilizando este enfoque comparando las cuerdas o caracteres cercanos en la cadena. Luego, intercambiarlos en el orden proporcionado, que podría estar organizado alfabéticamente en c++.

Tipo de inserción

El algoritmo de clasificación de inserción selecciona los caracteres uno a la vez y los inserta en la posición apropiada. Cada iteración del método de clasificación de inserción toma un carácter de la lista dada y lo inserta en la subtracción ordenada. El método toma el carácter y lo inserta en la posición correcta dependiendo del valor ASCII mientras se clasifica alfabéticamente.

Función de biblioteca estándar

Al importar el archivo de encabezado en nuestro código, podemos utilizar el método de clasificación desde la biblioteca de plantillas estándar C ++. En comparación con la creación del código, usar este método incorporado es más fácil y más rápido.

También podemos usar std :: sort () en c++. El std :: sort () es una función de biblioteca de plantilla estándar (stl) en c++. El método acepta un comienzo y un iterador final y, por defecto, se organiza en orden ascendente. Al entregar una operación de comparación que devuelve un booleano, el método también se puede utilizar para una clasificación específica.

Ejemplo 1

La función de clasificación es una de las formas más fáciles de ordenar el carácter de cadena. Lo único requerido es solo importar la biblioteca estándar de C++. El código comienza con la importación del "STDC estándar++.H ”Biblioteca en la sección del encabezado. La biblioteca contiene todos los archivos de biblioteca estándar. El "STD de espacio de nombres" también se incluye en el código.

Después de la sección del encabezado, hemos creado una función vacía como "myString" y han pasado una cadena de referencia "sortstr" en el constructor. Luego, hemos invocado el método sort () en la función "myString". El método sort () tiene el iterador inicial y el iterador final, que sorteo el carácter de cadena en orden ascendente. La cadena ordenada se imprimirá a través de la instrucción Cout.

Ahora, tenemos la función principal en la que hemos declarado una cadena como "strval" y la inicializamos. La cadena "strval" se pasa en la función "myString" para clasificar la cadena dada.

#incluir
usando el espacio de nombres STD;
void mystring (string & sortstr)

Sort (SortStr.begin (), sortstR.fin());
cout << SortStr;

int main ()

cadena strval = "ProgrammingLanguage";
Mystring (strval);
cout << "\n";
regresar 0;

El método sort () ordenó los caracteres de cadena en orden ascendente. El resultado de los caracteres de cadena de orden ascendente se muestra en la imagen.

Ejemplo2

También podemos ordenar los caracteres de cadena o cadena utilizando el método std :: sort, que se incluye en la biblioteca incorporada C ++ . El siguiente código tiene dos bibliotecas, "iostream" y "algoritmo" en la sección del encabezado. A través de la biblioteca "Algoritmo" podemos acceder al método std :: sort.

Después de la sección del encabezado, tenemos la función principal en la que hemos definido una matriz de cadenas como "colores" y la inicializamos con algunas palabras. Luego, tenemos que definir un tamaño de matriz igual a "5" en un "Arrssize" de Tipo de datos entero. Ahora, la utilización del método std :: sort toma una matriz de "colores" y el tamaño de la matriz como argumento para ordenar la cadena.

Hay una instrucción para bucle for en la siguiente línea de código, que itera el bucle hasta el tamaño de la matriz "5" para una matriz de cadenas. La instrucción Cout imprimirá la matriz ordenada en orden ascendente.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
colores de cadena [] = "rosa", "gris", "amarillo", "azul", "rojo";
int arrsize = 5;
std :: sort (colores, colores + Arrsize);
para (int a = 0; a < 5; a++)
cout<
regresar 0;

La salida de la cadena de función de la biblioteca estándar que se muestra a continuación se ordena en orden alfabético.

Ejemplo 3

Una estrategia efectiva sería la primera en notar que solo puede haber 26 personajes distintos. Entonces, en una matriz de hash, podemos almacenar el número de ocurrencias de cada personaje de 'A a' Z.'Simplemente buscaremos la matriz de hash y generaremos los caracteres de' a 'a' z 'como aparecen varias veces en la cadena de entrada. Por lo tanto, para implementar el código, hemos importado una biblioteca estándar, "STDC++.h "que nos ayuda a ordenar la matriz especificada.

Ahora, hemos declarado la variable "caracteres" con la palabra clave "const" y la inicializó con el valor "26". Luego, tenemos una función llamada "Sortstr" que toma la referencia de una cadena ordenada como "STRX". En la función, hemos creado una matriz hash como "countchar". Inicialmente, el recuento de caracteres iniciales se inicializa con cero. Después de la inicialización de la matriz hash, tenemos una instrucción For Loop que atraviesa la cadena y incrementa el recuento de caracteres. El primer índice de la matriz Hashed representa el carácter 'A'; el segundo representa 'b, etc.

Entonces, para la posición del personaje en el conteo de una matriz de hash, usamos strx [i]-'a'. Tenemos un bucle anidado para atravesar y comparar el carácter a través de la cadena. Si la variable "j" en el bucle es mayor que el carácter de conteo en la variable "i". La matriz de hash de cadena atravesará e imprimirá los caracteres. En las últimas líneas, tenemos la función principal donde hemos declarado e inicializado la cadena para la función "myString".

#incluir
usando el espacio de nombres STD;
Const int caracteres = 26;
void sortstr (string & strx)

int countchar [caracteres] = 0;
para (int i = 0; iCountchar [strx [i]-'a'] ++;
para (int i = 0; ipara (int j = 0; jcout << (char)('a'+i);

int main ()

String myString = "Welcomefriends";
SortStr (myString);
cout <<"\n";
regresar 0;

El resultado del carácter ordenado de la cadena se muestra en la siguiente pantalla del terminal.

Ejemplo 4

En la programación de C ++, debemos pedirle al usuario que proporcione algunos nombres para organizar cadenas (nombres) alfabéticamente (cadenas). Luego, como se indica en el código a continuación, ordene estas cadenas o nombres de entrada alfabéticamente. Tenemos el algoritmo de clasificación de burbujas para esta ilustración. El código tiene la función principal en la que hemos definido una matriz de caracteres "AllName" del tamaño de la matriz "5" y el valor del personaje de "10". Además, tenemos otro "nombre" de la matriz de la cadena de tipo de datos y establece el valor del personaje en "10".

Luego, hemos definido una variable de tipo entero "x" y "y". La matriz de caracteres será la entrada del usuario en este código. El usuario ingresará la cadena de nombres de cinco caracteres. Ahora, tenemos declaraciones de bucle anidadas, y en el bloque de bucle anidado, tenemos una condición que usa la función "STRCMP" para comparar dos cadenas. Después de comparar las cadenas, hemos invocado la función "strcpy" para intercambiar los nombres de la cadena. Como resultado, tenemos el orden alfabético ordenado de los nombres de las cadenas.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

Char AllName [5] [10], nombre [10];
int x, y;
cout<<"Enter Names: ";
para (x = 0; x> allname [x];
para (x = 1; x<5; x++)

para (y = 1; y0)

strcpy (nombre, AllName [y-1]);
strcpy (allname [y-1], allname [y]);
strcpy (allname [y], nombre);



cout<<"\nAlphabetical order of Names :\n";
para (x = 0; x<5; x++)
cout<cout<regresar 0;

Al principio, debe ingresar cinco nombres aleatorios; Luego, ordenará los nombres de las cadenas en orden alfabético. Los nombres de cadenas ordenadas resultantes en orden alfabético se muestran a continuación.

Conclusión

Concluimos que el carácter de la clasificación de la cadena en C ++ se logra a través de varios algoritmos de clasificación. Aquí, exploramos cómo clasificar una cadena en C ++ con algunos ejemplos de clasificación y cómo clasificar una cadena usando algunos algoritmos de clasificación. Todas las implementaciones de códigos se realizan en Ubuntu 20.04 usando el compilador G ++. Esperamos que este artículo le haya ayudado a comprender mejor el enfoque de construir una función de clasificación personalizada para clasificar una cadena de caracteres desordenada y su implementación en C++.