programa en C ++ para clasificar los nombres en orden alfabético

En este artículo, vamos a aprender cómo para ordenar una lista de nombres (en minúsculas) en orden alfabético (Diccionario orden) mediante el programa C ++ ?

Planteamiento del problema: Escribir un programa C ++ para ordenar N nombres en orden alfabético .

Ejemplo y explicación:

Deje entradas de usuario 5 nombres de la siguiente manera:

    rahul
virat
vijay
bumrah
rahane

alfabético medios a nombres de ordenar de acuerdo con alfabeto orden a partir del carácter más a la derecha de clasificación. (Más a la derecha carac-> ‘r’ class ‘Rahul’ ).

Eso significa que, en el ‘Rahul’ precede ‘Vijay’ en orden alfabético ya que el carácter más a la derecha de ‘Rahul’ es ‘r’ donde como el carácter más a la derecha de ‘Vijay’ es ‘ v’ y ‘r’ precede ‘v’ en orden alfabético.

La siguiente preocupación es qué pasa con ‘Rahul’ y ‘Rahane’ ya que ambos tienen mismo carácter más a la derecha. En tales casos comparar los elementos correspondientes de derecha a izquierda.

Así ‘Rahane’ precede ‘Rahul’ desde ‘a’ precede ‘u’ en orden alfabético. (Ambos tienen ‘ráh parte común).

Una cosa más es ‘Abdul’ se precede ‘Abdulla’ ya que ambos tienen ‘Abdul’ como parte común y ‘Abdul’ tiene nada donde ‘Abdulla’ tiene.

Así, utilizando los hechos por encima de los nombres aparecerán después de su clasificación:

    bumrah
rahane
rahul
vijay
virat

Algoritmo:

1. La construcción de la lista de nombres

Declarar un vector de cadenas y tomar cada cadena y de inserción al vector.

    vector<string>names;
for i=0:n-1
input each name;
insert name into the vector
End for loop

2. Aparecen en orden alfabético

Podemos clasificar el vector usando nuestra propia función comparador para ordenar las cadenas en orden alfabético.

Nuestra función de comparación se define como:

    Function[bool] mycomp (string a, string b)
return a<b;
//returns 1 if string a is alphabetically less than string b,
//which is quite similar to strcmp operation
//else returns 0
End Function

Ahora para ordenar el vector de cadena que utilizamos esta función comparador durante el uso de la función STL tipo.

    sort(names.begin(), names.end(), mycomp);
//this sorts the names in alphabetical order

C ++ aplicación for Ordenación de nombres en orden alfabético

#include <bits/stdc++.h>
using namespace std;
//function to print the array
void print(vector<string> names){
printf("printing ........n");
for(int i=0;i<names.size();i++)
cout<<names[i]<<endl;
printf("n");
}
bool mycomp(string a, string b){
//returns 1 if string a is alphabetically
//less than string b
//quite similar to strcmp operation
return a<b;
}
vector<string> alphabaticallySort(vector<string> a){
int n=a.size();
//mycomp function is the defined function which
//sorts the strings in alphabatical order
sort(a.begin(),a.end(),mycomp);
return a;
}
int main()
{
int n;
printf("enter number of names to be added: ");
scanf("%d",&n);
//creating a vector of strings
//vector to store strings(names)
vector<string> names;
string name;
printf("enter names: n");
//taking input
for(int i=0;i<n;i++){
cin>>name;
//insert names into the vector
names.push_back(name);
}
printf("nbefore sortingn");
print(names);
//function to sort names alphabetically
names=alphabaticallySort(names);
printf("after alphabetical sortingn");
print(names);
return 0;
}

salida

enter number of names to be added: 5
enter names:
rahul
virat
vijay
bumrah
rahane
before sorting
printing ........
rahul
virat
vijay
bumrah
rahane
after alphabetical sorting
printing ........
bumrah
rahane
rahul
vijay
virat


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *