Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Drewermerc en 21 Abril 2016, 17:30 pm



Título: ¿como ordenar alfabeticamente array bidimensional?
Publicado por: Drewermerc en 21 Abril 2016, 17:30 pm
Hola a todos.

Bueno tengo un problema, tengo un array bidimensional en el cual se almacenan  nombres y estos los quiero ordenar alfabéticamente por la primera letra pero no encuentro como hacerlo.
hasta ahorita he intentado con esto pero no lo ordena.
Código
  1. void ordenarDatos(){
  2.  int i = 0, j = 0, k = 0, indices = 0;
  3.  char tmp[MAX][20];
  4.  
  5.  printf("La lista se va a ordenar en forma alfabetica\n");
  6.  
  7.  
  8.  for(indices = 0; indices < MAX; indices++){
  9.      for (i = 0; i < MAX; i++) {
  10.      if ((lista[i] == (i+66)) || (lista[i] == (i+98))) {
  11.        for (j = 0; j < count; j++) {
  12.          tmp[indices] =
  13.        }
  14.      }
  15.    }
  16.  }
  17.  for (i = 0; i < MAX; i++) {
  18.    printf("%s\n", tmp[i]);
  19.  }
  20. }
  21.  
  22.  

Espero que me puedan ayudar.
Saludos,
Drewermerc.


Título: Re: ¿como ordenar alfabeticamente array bidimensional?
Publicado por: HardForo en 21 Abril 2016, 17:35 pm
No te compliques... tienes qsort (http://www.gnu.org/software/libc/manual/html_node/Array-Sort-Function.html)() en C y std::sort() en C++

Ciertamente tu intento está lejos de funcionar.


Título: Re: ¿como ordenar alfabeticamente array bidimensional?
Publicado por: ivancea96 en 21 Abril 2016, 17:41 pm
El algoritmo más simple puede serte la Ordenación de burbuja (https://es.wikipedia.org/wiki/Ordenamiento_de_burbuja)

Para este algoritmo, solo necesitas 2 cosas: Poder intercambiar los valores de 2 elementos (con un for puedes intercambiar dos cadenas), y ver cuál es mayor y cual menor (comparando caracter a caracter, o con funciones como strcmp() de la librería string.h.


Título: Re: ¿como ordenar alfabeticamente array bidimensional?
Publicado por: Drewermerc en 21 Abril 2016, 18:05 pm
 :DHola ivancea96 y boctulus.

Gracias a los dos por responder.
Se me hizo mas rápido la recomendación que me hizo ivancea96, solo era usar el ordenamiento burbuja con la función de copear, no se por que me complique ;D.

Esa función no la conocía boctulus la investigare.

Gracias.
Saludos,
Drewermerc.