Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: loko5755 en 4 Mayo 2014, 02:03 AM

Título: Como ordenar alfabéticamente palabras en C++
Publicado por: loko5755 en 4 Mayo 2014, 02:03 AM
Necesito saber ¿como ordenar palabras alfabéticamente en una tabla con matrices?
Título: Re: Como ordenar alfabéticamente palabras en C++
Publicado por: engel lex en 4 Mayo 2014, 05:17 AM
Preferiblemente usar strings, revisas el largo del string, el largo del string -1 es el primer carácter del string, haces un bubble sort en base a eso reorganizas los elementos, así con el segundo carácter, 3ro, etc
Título: Re: Como ordenar alfabéticamente palabras en C++
Publicado por: eferion en 5 Mayo 2014, 10:13 AM
Si las palabras no van a aparecer duplicadas y van a venir todas en minúsculas o mayúsculas puedes usar el contenedor set.

Código (cpp) [Seleccionar]

std::set< std::string > lista;
lista.insert( "zzz" );
lista.insert( "bbb" );
lista.insert( "tttt" );
lista.insert( "hola" );
lista.insert( "adios" );

for ( auto it = lista.begin( ); it != lista.end( ); ++it )
  std::cout << *it << endl;


Salida del programa:

adios
bbb
hola
ttt
zzz


Si se admiten duplicados, puedes usar el contenedor multiset.

Si se han de ordenar independientemente de que empiecen por mayúsculas o minúsulas puedes usar la función sort:

Código (cpp) [Seleccionar]

#include <algorithm>
#include <iostream>
#include <string>
#include <vector>

int ordenar( const std::string& cad1, const std::string& cad2 )
{
  int to_return = 0;

  // Codigo para comparar las cadenas

  return to_return;
}

int main( )
{
  std::vector< std::string > lista;

  lista.push_back( "abogado" );
  lista.push_back( "Ahorcado" );
  lista.push_back( "prueba" );
  lista.push_back( "Finalista" );
  lista.push_back( "ZaRPazo" );
  lista.push_back( "C++" );

  std::sort( lista.begin( ), lista.end( ), ordenar );

  for ( auto it = lista.begin( ); it != lista.end( ); ++it )
    std::cout << *it << std::endl;
}
Título: Re: Como ordenar alfabéticamente palabras en C++
Publicado por: amchacon en 5 Mayo 2014, 11:16 AM
@Eferion: Yo no llamaria a la variable "lista", si veo eso en un código pensaré que es un list y no un vector ;D
Título: Re: Como ordenar alfabéticamente palabras en C++
Publicado por: eferion en 5 Mayo 2014, 12:04 PM
Cita de: amchacon en  5 Mayo 2014, 11:16 AM
@Eferion: Yo no llamaria a la variable "lista", si veo eso en un código pensaré que es un list y no un vector ;D

Cierto... se nota que list lo uso poco jejejeje