elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  como ordenar 3 palabras alfabeticamente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: como ordenar 3 palabras alfabeticamente  (Leído 24,150 veces)
Regexp

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #10 en: 10 Junio 2015, 03:02 am »

Sigo apoyando lo que dice Regexp pero corrijo algo burbuja no es n2, es n! Ya que cada ciclo mayor resuelve uno :p
[...]

Sino mal recuerdo es O(N2), o al menos, en el peor de todos los casos. El caso "medio" es un poco menor, pero para valores muy grandes de N, en una ecuación de segundo grado A*N2+B*N+C puede aproximarse simplemente a N2. Como dirían por ahí, hay infinitos más grandes que otros. http://www.c.conclase.net/orden/?cap=burbuja

De ser N! sería totalmente imposible de usar :rolleyes:, dado que N! es aún mayor que la exponencial desde un cierto N.

N! >= 2N, para toda N>=4, prueba por inducción

Cuando lo que se busca es que los algoritmos tiendan a tener complejidad logarítmica, dado que

log(N)<=N<=eN, para toda N>=1, prueba por crecimiento y decrecimiento de las funciones.

El caso N2 es especial, para valores pequeños de N, no es problemático... en cuanto crece.. el algoritmo no escala.

En cuanto a hacerlo por condicionales... la mejor manera sería como ha dicho nuestro compañero engel lex, por fuerza bruta, en tal caso para N elementos pueden existir N-1 posibles cadenas que vienen después (o antes, dependiendo de la implementación), y así, al ser sólo 3 cadenas de caracteres, tendrías 3*2*1=3!=6 posibles secuencias de cadenas ordenadas.

Saludos


« Última modificación: 10 Junio 2015, 03:04 am por Regexp » En línea

No todo el que deambula está perdido
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #11 en: 10 Junio 2015, 03:39 am »

Sorry, tienes razón, confundí conceptos ;)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #12 en: 11 Junio 2015, 02:15 am »

responde por el foro, para eso el tema està abierto -.-

Citar
no entendí que me quisite decir con ese código yo probe con eso pero no puedo hacer andar la comparación entre las 3, me hace solo 2 comparaciones,
puedes ayudarme?

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5.  
  6.  
  7. int main()
  8.  
  9. {
  10.  
  11. char pal1[20], pal2[20], pal3[20];
  12.  
  13. printf("ingrese una palabra:");
  14.  
  15. gets(pal1);
  16.  
  17. printf("ingrese la segunda palabra:");
  18.  
  19. gets(pal2);
  20. printf("ingrese tercera palabra");
  21. gets(pal3);
  22.  
  23. ("\n Las palabras ordenadas alfabeticamente son: \n");
  24.  
  25.  
  26. if(strcmp (pal1,pal3)<0)                  //(pal1, pal2)<0)
  27.  
  28. {
  29.  pal1>pal3 & pal3>pal1;
  30.  printf ("%s\n",pal1, pal3);
  31.  
  32. }
  33.  
  34. else{
  35.    pal3<pal1 & pal1<pal3;
  36.   printf ("%s\n",pal3, pal1);
  37.  
  38. }
  39.  
  40. if(strcmp (pal1,pal2)<0)                  //(pal1, pal2)<0)
  41.  
  42. {
  43.  pal1>pal2 & pal1>pal2;
  44.  printf ("%s\n",pal1, pal2);
  45.  
  46. }
  47.  
  48. else{
  49.    pal2<pal1 & pal1<pal2;
  50.   printf ("%s\n",pal2, pal1);
  51. }
  52.  
  53. return 0;
  54.  
  55. }

cuando dije

Código:
Si(p1>p2 y p2>p3){
  imprimir p1, p2, p3
}

p1 > p2 es una comparación de strings, sería strcmp, "y" es comparador binario y es "&&", dejando el código de esta manera

Código
  1. if(strcmp (pal1, pal2)<0 && strcmp (pal2, pal3)<0){
  2.   printf("%s, %s, %s\n",pal1,pal2,pal3);
  3. }

y claramente los casos no los entendiste...
son 6 posibles casos
Código:
p1>p2>p3
p1>p3>p2
p2>p1>p3
p2>p3>p1
p3>p2>p1
p3>p1>p2

entonces los expreso como
Código:
Si(p1>p2 y p2>p3)
lo que se convierte en código como
Código
  1. if(strcmp(p1,p2)>0 && strcmp(p2,p3)

espero se entienda
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fernandoprog1

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #13 en: 11 Junio 2015, 19:07 pm »

Gracias engel lex, ahora entendí perfectamente! el código que muestro aquie anda perfectamente y compara alfabéticamente 3 palabras, ahora si quiero comprar 4  palabras quedaría algo asi  p1>p2>p3>p4 ????


Código
  1. #include <stdio.h>
  2.  
  3. #include <string.h>
  4.  
  5. #include <stdlib.h>
  6.  
  7.  
  8.  
  9. int main()
  10.  
  11.  
  12.  
  13. {
  14.  
  15.  
  16.  
  17. char pal1[20], pal2[20], pal3[20];
  18.  
  19. printf("\nINGRESE PRIMER PALABRA:  \n");
  20.  
  21. gets(pal1);
  22.  
  23. printf("\nINGRESE SEGUNDA PALABRA:  \n");
  24.  
  25. gets(pal2);
  26.  
  27. printf(" \nINGRESE TERCERA PALABRA:  \n");
  28.  
  29. gets(pal3);
  30.  
  31.  
  32.  
  33. ("\n  LAS PALABRAS ORDENADAS ALFABETICAMENTE SON:  \n");
  34.  
  35.  
  36. printf("\n\n");
  37. if(strcmp (pal1, pal2)<0 && strcmp (pal2, pal3)<0){
  38.  
  39. printf("%s, %s, %s\n",pal1,pal2,pal3);
  40. }
  41. if(strcmp (pal1, pal3)<0 && strcmp (pal3, pal2)<0){
  42.  
  43. printf("%s, %s, %s\n",pal1,pal3,pal2);
  44. }
  45.  
  46. if(strcmp (pal2, pal1)<0 && strcmp (pal1, pal3)<0){
  47.  
  48. printf("%s, %s, %s\n",pal2,pal1,pal3);
  49. }
  50.  
  51. if(strcmp (pal2, pal3)<0 && strcmp (pal3, pal1)<0){
  52.  
  53. printf("%s, %s, %s\n",pal2,pal3,pal1);
  54. }
  55.  
  56. if(strcmp (pal3, pal2)<0 && strcmp (pal2, pal1)<0){
  57.  
  58. printf("%s, %s, %s\n",pal3,pal2,pal1);
  59. }
  60.  
  61. if(strcmp (pal3, pal1)<0 && strcmp (pal1, pal2)<0){
  62.  
  63. printf("%s, %s, %s\n",pal3,pal1,pal2);
  64. }
  65.  
  66.  
  67. return 0;
  68.  
  69.  
  70. }
  71.  
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #14 en: 11 Junio 2015, 21:28 pm »

si, sería así siendo ahora 24 casos si no me equivoco
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fernandoprog1

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #15 en: 11 Junio 2015, 21:50 pm »

Gracias engel lex, ahora para no tener que usar tantos if que puedo hacer ?
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #16 en: 11 Junio 2015, 21:52 pm »

lee mi segunda respuesta (la que tiene código)
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
fernandoprog1

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #17 en: 12 Junio 2015, 00:43 am »

este es el programa que me mostraste engel lex , ahora una ves que me lo compila me pide los 3 datos pero no me muestra nada, por que pasa eso ?


Código
  1.  
  2. #include <stdlib.h>
  3.  
  4. #include <string.h>
  5.  
  6. #include <stdio.h>
  7.  
  8.  
  9. int main()
  10.  
  11. {
  12.  
  13.  
  14.  
  15.  
  16. int i, j, n;
  17.  
  18. char palabras[3][20];
  19. char intercambio[20];
  20.  
  21. printf("ingrese primer palabra");
  22. gets(palabras);
  23. printf("ingrese segunda palabra");
  24. gets(palabras);
  25. printf("ingresse tercera palabra");
  26. gets(palabras);
  27.  
  28.  
  29. for(i=0;i<3-1;i++)
  30.  
  31. for(j=0;j<3-1-i;j++)
  32.  
  33.   {
  34.  
  35. n=strcmp (palabras[j], palabras[j+1]);//se comparan
  36.  
  37. if(n > 0)
  38.  
  39. {
  40.  
  41. strcpy (intercambio,palabras[j]);//coloco el valor en un espacio temporal
  42.  
  43. strcpy (palabras[j],palabras[j+1]);//copio el otro al valor ya salvado
  44.  
  45. strcpy (palabras[j+1],intercambio);//coloco el primero en el final
  46.  
  47. }
  48.  
  49.   }
  50.  
  51. }
  52.  
« Última modificación: 12 Junio 2015, 00:45 am por fernandoprog1 » En línea

тαптяα


Desconectado Desconectado

Mensajes: 1.151


Sic utere tuo ut alienum non laeda


Ver Perfil WWW
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #18 en: 12 Junio 2015, 00:57 am »

Te faltan los printfs..

printf("%s, %s, %s\n",pal3,pal1,pal2);
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: como ordenar 3 palabras alfabeticamente
« Respuesta #19 en: 12 Junio 2015, 16:10 pm »

reccomiendo revisar un tutorial sobre arrays (o arreglos) en c++

Código
  1. printf("ingrese primer palabra");
  2. gets(palabras[0]);
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ordenar alfabeticamente en php con numeros « 1 2 »
PHP
dominioswww 10 8,265 Último mensaje 17 Junio 2008, 03:02 am
por WHK
Como ordenar alfabéticamente palabras en C++
Programación C/C++
loko5755 4 22,421 Último mensaje 5 Mayo 2014, 12:04 pm
por eferion
Ordenar una lista alfabeticamente
Programación C/C++
maferavagar 1 5,007 Último mensaje 17 Mayo 2015, 14:56 pm
por ivancea96
¿como ordenar alfabeticamente array bidimensional?
Programación C/C++
Drewermerc 3 3,304 Último mensaje 21 Abril 2016, 18:05 pm
por Drewermerc
Nadie me explica como ordenar alfabeticamente mas de tres palabras
Programación C/C++
JulianDronger 1 1,896 Último mensaje 23 Febrero 2019, 01:44 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines