Clasificación de caracteres de una cadena C ++

Clasificación de caracteres de una cadena C ++
Cª++, instrumentos de cuerda son matrices de personajes. Al procesar una cadena, es posible que deseemos clasificar los personajes en él. Para hacer esto, podemos usar varios algoritmos de clasificación Para satisfacer las diferentes necesidades. Clasificación de personajes de una cadena C ++ implica reemplazar los caracteres dentro del cadena, o secuencia de caracteres, en un orden predeterminado. Este orden suele ser alfabético o numérico, pero también podría ser determinado por otros clasificación criterios específicos para la tarea de programación.

Las computadoras procesan cadenas en operaciones a nivel de personaje y las almacenan en la memoria, por lo que cualquiera algoritmo de clasificación debe considerar el flujo de bytes dentro de la cadena, así como sus relaciones numéricas o alfabéticas. Este artículo cubrirá los pasos para implementar los algoritmos de clasificación más comunes para cadenas C ++.

Clasificación de caracteres de una cadena C ++

Hay cinco métodos para ordenar una cadena como se da:

  • Clasificación de selección
  • Tipo de inserción
  • Ordenamiento de burbuja
  • Ordenación rápida
  • Función () función

1: Orden de selección

Clasificación de selección es un algoritmo de clasificación basado en comparación que funciona dividiendo la entrada en dos partes: un sublista de ordenado personajes y un sublista de no atento caracteres. El algoritmo luego busca al sublista sin clasificar el elemento más pequeño y coloca el elemento más pequeño en el sublista de los personajes ordenados. Continúa este proceso hasta que se ordene toda la cadena.

Para implementar clasificación de selección En C ++ usaremos los siguientes pasos.

Paso 1: Crear un bucle para que comience con el índice de caracteres I igual a 0. El bucle iterará a través de la cadena una vez.

Paso 2: Establezca el índice mínimo en i.

Paso 3: Cree un bucle anidado para comenzar con el índice de caracteres j igual a i+1. El bucle iterará a través de los caracteres restantes de la cadena.

Etapa 4: Compare el carácter en el índice I con el personaje en el índice j. Si el personaje en el índice j es menor que el carácter en el índice I, establecemos el índice mínimo en j.

Paso 5: Después del bucle anidado para el bucle, intercambiamos el carácter con un índice mínimo con el carácter en el índice i.

Paso 6: Repita los pasos 1-5 hasta llegar al final de la cadena.

El programa para el orden de selección se da a continuación:

#incluir
#incluir
usando el espacio de nombres STD;
Void Selectionsort (String & S)
int len ​​= s.longitud();
para (int i = 0; i< len-1; i++)
int minIndex = i;
para (int j = i+1; j if (s [j] < s[minIndex])
minindex = j;


if (minindex != i)
intercambio (s [i], s [minindex]);



int main ()
String str = "Este es un algoritmo de clasificación";
cout<< "Original string was: " << str <selectionsort (str);
cout<< "Sorted string is: " << str <regresar 0;

En el código anterior, se envía una referencia de cadena al selección función, que clasifica la cadena en el lugar. Al iterando sobre la cadena desde la posición actual hasta el final, la función identifica primero el elemento menos en la parte no organizada de la cadena. El elemento en el lugar actual en la cadena se cambia para el elemento mínimo después de que se haya determinado. Este procedimiento se repite para cada elemento de la cadena en el bucle externo de la función hasta que toda la cadena esté dispuesta en orden no de depósito.

Producción

2: Orden de inserción

Tipo de inserción es otro algoritmo de clasificación basado en la comparación y funciona dividiendo la entrada en partes ordenadas y no organizadas. El algoritmo luego itera a través de la parte no clasificada de la entrada y agrega el elemento a su posición correcta mientras cambia los elementos más grandes hacia la derecha. Para hacer esto, se deben seguir los siguientes pasos:

Paso 1: Cree un bucle para que comience con el índice de caracteres I igual a 1. El bucle iterará a través de la cadena una vez.

Paso 2: Establezca la tecla variable igual al carácter en el índice i.

Paso 3: Cree un anidado mientras bucle comenzando con el índice de caracteres j igual a I-1. El bucle iterará a través de la parte ordenada de la cadena.

Etapa 4: Compare el carácter en el índice j con la clave variable. Si la clave variable es menor que el carácter en el índice j, intercambiamos el carácter en el índice j con el carácter en el índice j+1. Luego, establezca la variable j igual a j-1.

Paso 5: Repita el paso 4 hasta que j sea mayor o igual a 0 o la clave variable es mayor o igual que el carácter en el índice j.

Paso 6: Repita los pasos 1-5 hasta llegar al final de la cadena.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
cuerda str;
cout<< "Original string was: " ;
GetLine (CIN, STR);
int longitud = str.longitud();
para (int i = 1; i = 0 && str [j]> temp)
str [j + 1] = str [j];
J--;

str [j + 1] = temp;

cout<< "\nSorted string is: " << str << " \n";
regresar 0;

Estamos dividiendo la matriz en sublistas ordenados y sin clasificar en este código. Luego se comparan los valores en el componente no organizado, y se clasifican antes de ser agregados al sublista ordenado. El miembro inicial de la matriz ordenada será considerado como un sublista ordenado. Comparamos todos los elementos en el sublista sin clasificar con cada elemento del sublista ordenado. Luego, todos los componentes más grandes se mueven a la derecha.

Producción

3: clasificación de burbujas

Otra técnica de clasificación directa es la ordenamiento de burbuja, que cambia continuamente los elementos cercanos si están en el orden incorrecto. Sin embargo, primero debes comprender qué es el tipo de burbuja y cómo funciona. Cuando la siguiente cadena es más pequeña (a [i]> a [i+1]), las cadenas vecinas (a [i] y a [i+1]) se cambian en el proceso de clasificación de burbujas. Para ordenar una cadena usando ordenamiento de burbuja En C ++, siga estos pasos:

Paso 1: Solicite la entrada del usuario para una matriz.

Paso 2: Cambiar los nombres de las cadenas usando 'strcpy'.

Paso 3: Se usa un bucle anidado para caminar y comparar dos cuerdas.

Etapa 4: Los valores se cambian si el valor ASCII de y es mayor que y+1 (las letras, dígitos y caracteres asignados a los códigos de 8 bits).

Paso 5: El intercambio continúa hasta que la condición devuelve falso.

El intercambio continúa en el paso 5 hasta que la condición devuelve falso.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
char str [10] [15], arr [10];
int x, y;
cout<< "Enter Strings: ";
para (x = 0; x> str [x];

para (x = 1; x < 6; x++)
para (y = 1; y 0)
strcpy (arr, str [y - 1]);
strcpy (str [y - 1], str [y]);
strcpy (str [y], arr);



cout<< "\nAlphabetical order of Strings :\n";
para (x = 0; x < 6; x++)
cout<< Str[x] <cout<regresar 0;

Lo anterior Ordenamiento de burbuja programa utilizaremos una matriz de personajes que pueda mantener 6 cadenas de caracteres como entrada del usuario. El "Strcpy" La función se ha utilizado donde los nombres de las cadenas se intercambian en una función anidada. En la declaración if, se comparan dos cadenas utilizando el "STRCMP" función. Y una vez que se comparan todas las cuerdas, la salida se imprime en la pantalla.

Producción

4: Clasificación rápida

El método de división y conquista es utilizado por clasificación rápida Algoritmo recursivo para organizar los elementos en cierto orden. El método emplea el enfoque para dividir la misma lista en dos con la ayuda del valor pivote, que se cree que es el primer miembro idealmente, en lugar de usar almacenamiento adicional para los sublistas. Sin embargo, se puede elegir cualquier elemento. Después de las llamadas al ordenación rápida, La lista se divide utilizando el punto de partición.

Paso 1: Primero, ingrese una cadena.

Paso 2: Declara la variable pivote y asigna al carácter medio de la cadena.

Paso 3: Establecer los límites inferiores y superiores de la cuerda como las dos variables bajas y altas, respectivamente.

Etapa 4: Comience a dividir la lista en dos grupos, uno con caracteres más grandes que el elemento pivote y el otro con caracteres más pequeños, utilizando un bucle y un elemento intercambio de elementos.

Paso 5: Ejecute recursivamente el algoritmo en las dos mitades de la cadena original para crear la cadena ordenada.

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
Void Quicksort (std :: string & str, int s, int e)
int st = s, end = e;
int pivot = str [(st + end) / 2];
hacer
mientras (str [st] pivote)
fin--;
if (st<= end)
std :: swap (str [st], str [end]);
ST ++;
fin--;

while (st<= end);
Si (s < end)
Quicksort (str, s, final);

if (st< e)
Quicksort (str, st, e);


int main ()
std :: string str;
coutstr;
Quicksort (str, 0, (int) str.tamaño () - 1);
cout<< "The sorted string: " <

En este código, estamos declarando las posiciones de inicio y final de dos variables debajo 'comenzar' y 'fin' que se declarará en relación con la cadena de caracteres. La matriz se dividirá por la mitad en el ordenación rápida() Función, luego utilizando un bucle Do-While, los elementos se cambiarán y el procedimiento se repetirá hasta que se ordene la cadena. El ordenación rápida() la función se llamará luego desde el principal() la función y la cadena ingresada por el usuario se ordenará y la salida se imprimirá en la pantalla.

Producción

5: Función de biblioteca C ++

El clasificar() Se puede acceder a la función en C ++ gracias al algoritmo de función de la biblioteca incorporada. Haremos una variedad de cadenas de nombres y usaremos el incorporado clasificar() Método, que ordenará las cadenas utilizando el nombre y el tamaño de la matriz como argumentos. La sintaxis de esta función es:

Sort (primer iterador, último iterador)

Donde los índices de inicio y finalización de la cadena están, respectivamente, los primeros y últimos iteradores.

Comparativamente hablando, usar esta función incorporada es más rápida y fácil de completar que desarrollar su propio código. Solo las cadenas no espaciadas se pueden ordenar utilizando el clasificar() método, ya que también emplea el algoritmo de clasificación rápida para hacerlo.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
cuerda str;
coutstr;
ordenar (str.begin (), str.fin());
cout<< "The sorted string is: " <regresar 0;

En este código, primero ingresaremos una cadena por parte del usuario, y luego la cadena se ordenará utilizando el clasificar() método y luego impreso en la pantalla.

Producción

Conclusión

Cuando clasificación Un carácter en una cadena C ++, el programador debe considerar el algoritmo de clasificación apropiado para la tarea, así como el tamaño de la cadena. Dependiendo del tamaño de la función de la cadena, la inserción, la burbuja, el sort de selección, la función rápida o la clasificación () se puede usar para clasificar los caracteres. Depende de la elección del usuario, qué método desea elegir.