The::Beastieux

Sangre de Bestia + Corazón de Pingüino | Un blog acerca de Linux, *BSD, Open Source, Software Libre, Programación …

Métodos de ordenamiento hecho en C++


Acabo de encontrar los codigos que habia escrito en C++, sobre tipos de ordenamiento, les servirá para algo.

Método shell: Ordenamiento Shell.cpp
Método quick sort: Ordenamiento por método Quick Sort.cpp
Método Inserción Directa: Ordenamiento por inserción Directa.cpp
Método Inserción Binaria: Ordenamiento por inserción Binaria.cpp
Método Heap sort: Ordenamiento por Heap Sort.cpp
Método de Selección: Ordenamiento método Selección.cpp
Método Radix: Ordenamiento por método Radix.cpp (Nuevo)
Método Burbuja: Ordenamiento por método Burbuja.cpp (Nuevo)

Esta es la librería que los 6 primero métodos lo utilizan (El cual también se encuentra adjuntado con cada código):

Librerias: leearreglo.h

Nuevo: Veo el interés por este tema, así que les dejo una publicación que realicé explicando ventajas y desventajas por cada tipo de ordenamiento. Aquí

También te puede Interesar:

Métodos de Ordenamiento en java

104 Responses to Métodos de ordenamiento hecho en C++

  1. juju mayo 22, 2012 a las 9:21 pm

    que aburrido pero hay que hacer tarea jiji nel esto es la ley

  2. prisma elizabeth abril 20, 2012 a las 2:38 pm

    hola … algien me puede ayudar mi mis me puso a hacer un programa de todos los k ya tengo uno solo usando el metodo burbuja….y no entiendo

  3. prisma elizabeth abril 20, 2012 a las 2:36 pm

    holis :)

  4. Ricardo abril 20, 2012 a las 2:36 pm

    ola amiguitosz..(H)

  5. Alexandra marzo 5, 2012 a las 7:16 pm

    Hola quisiera saber si me puedes colaborar adaptando el ordenamiento, pero para ordenar objetos…Gracias
    Esto es lo que tengo pero me falla y no se por que.
    ////////////////////////////////////////////////////////////////////////////////////
    Persona aux;
    for(i=0;i<(n-1);i++)
    {
    posm=i;
    men=Per[i].getCedula();
    for(k=i+1;k Per[k].getCedula())
    {
    men=Per[k].getCedula();
    posm=k;
    }

    aux=Per[i];
    Per[i]=Per[posm];
    Per[posm]=aux;
    }
    }
    ///////////////////////////////////////////////////////////////////////////////////

  6. carlos delgado octubre 2, 2011 a las 9:53 pm

    Hola quisiera este programa pero que solo funcione con un solo for y que este explicado.
    Agradecería muchísimo si alguien lo publica.
    Saludos

  7. jose 1981 julio 8, 2011 a las 8:55 pm

    El Método Burbuja no me funciona me tira varios errores:
    “/usr/bin/make” -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
    make[1]: se ingresa al directorio «/home/jose/NetBeansProjects/Método Burbuja»
    “/usr/bin/make” -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/m_todo_burbuja
    make[2]: se ingresa al directorio «/home/jose/NetBeansProjects/Método Burbuja»
    mkdir -p build/Debug/GNU-Linux-x86
    rm -f build/Debug/GNU-Linux-x86/main.o.d
    g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
    main.cpp:18:6: warning: trigraph ??( ignored, use -trigraphs to enable
    main.cpp:18:9: warning: multi-character character constant
    main.cpp:18:13: warning: trigraph ??) ignored, use -trigraphs to enable
    main.cpp: In function ‘int main()’:
    main.cpp:18:6: error: expected initializer before ‘?’ token
    main.cpp:24:6: error: ‘n’ was not declared in this scope
    main.cpp:30:4: error: ‘n’ was not declared in this scope
    main.cpp:36:7: error: ‘n’ was not declared in this scope
    make[2]: *** [build/Debug/GNU-Linux-x86/main.o] Error 1
    make[2]: se sale del directorio «/home/jose/NetBeansProjects/Método Burbuja»
    make[1]: *** [.build-conf] Error 2
    make[1]: se sale del directorio «/home/jose/NetBeansProjects/Método Burbuja»
    make: *** [.build-impl] Error 2

    todo empieza aquí en: la linea 18 int n??(‘cn’??); si existe un remplazo porfa díganme porque ya probé con varias formas.

    • José Guerrero octubre 3, 2011 a las 7:39 am

      El método de la burbuja, el más ineficiente de todos los métodos de ordenamiento pero útil para muchos casos, lo encuentras reseñado en muchos sitios de la web y libros de programación. Es muy fácil de implementar.

  8. Brian mayo 2, 2011 a las 7:53 pm

    Hola necesito ayuda con un programa muy complicado (almenos para mi si) en Dev-C++ se trata de esto: programa que: “de la posibilidad de ordenar un arreglo de numeros (enteros y decimales) por algun metodo de ordenamiento seleccionado por el usuario…
    1. Burbuja
    2. Seleccion
    3. Inserccion
    4. Quickshort
    …independientemente del metodo elegido debera indicarse los siguientes resultados”
    1. tiempo de ordenamiento
    2. cantidad de comparaciones
    3. cantidad de intercambios
    4. arreglo resultante “ordenado”

    sinceramente no se como hacerlo haber si alguien me puede ayudar por favor

    • BeAsTiEuX mayo 3, 2011 a las 3:08 am

      Como estás Brian, ahi tienes todos los métodos que necesitas, para ello solo deberías hacer un código para un menu, podrias usar la estructura de case
      y llamar a cada uno de los códigos según elijas, para la cantidad de comparaciones basta con crear una variable que incrementará antes de la función de comparación, y la cantidad de intercambios cuando entra a la función de comparación.

      int numComparaciones=0;
      int numIntercambios=0;

      numComparaciones++;

      if(n[j]>n[j+1])
      {
      k=n[j+1];
      n[j+1]=n[j];
      n[j]=k;
      numIntercambios++;
      }

      Para calcular el tiempo de ordenamiento/ejecución declara al inicio la librería time.h: #include

      clock_t t_ini, t_fin;
      double tiempo;
      t_ini = clock(); //inicia contador de tiempo
      /* …aquí se ejecuta el ordenamiento… */
      t_fin = clock(); //finaliza contador de tiempo

      tiempo = (double)(t_fin – t_ini) / CLOCKS_PER_SEC;

      la precisión creo no es tan exacta, pero también de penderá del medio donde ejecutes el código, para que hagas una comparación eficiente deberás ejecutar todos en el mismo ordenador con los recursos del medio que sean iguales para todos.

  9. jeamileth garcia diciembre 2, 2010 a las 9:50 pm

    hola necesito de su ayuda con un programa q contenga los metodos de ordenamiento incluyendole funciones esq casi lo manejo. bien! muxhas graxias de antemano!!

  10. punky noviembre 23, 2010 a las 5:46 pm

    oigan me mandaron a averiguar sobre el metodo de ordenamiento “switch” alguien podria decirme en ke consiste? o darme un ejemplo para trabajarlo?

  11. José Guerrero septiembre 13, 2010 a las 10:59 pm

    Gracias también a ti. Ya probé lo que me dijistes. Por cierto, vi el logotipo de tu avatar y caí en cuenta de que era de PCBSD. Instalé la versión 8.1 x64 en mi equipo y funciona muy bien. Nunca había trabajado con BSD y tampoco me fue muy difícil incluirlo en el grub2 de Debian.

    Saludos

  12. José Guerrero septiembre 8, 2010 a las 9:06 pm

    Por cierto, con código resaltado, disponible en WordPress.com, es más fácil acceder a el porque se puede copiar rápidamente al portapapeles. He aquí un ejemplo:

    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    int main () {
    
      cout << "Hola, mundo\n";
    
      system ("pause");
    
      return 0;
    
    }
    

    Saludos

    • BeAsTiEuX septiembre 8, 2010 a las 11:50 pm
      int main(void)
      {
      ...
      	cout<<"Cadena de numeros enteros:\n";
      	for (n = 0;; n++)
      	{
      		cin>>x[n]; 
      		if(x[n]==-1)
      			break;
      	}
      	
      ...
      }
      

      ingresa un numero uno después de otro separándolos con enter, ingresando -1 termina de pedirte datos…

      Thanks por la info del resaltado de los códigos, espero poder actualizar los posteados en el blog.

      Saludos!

  13. José Guerrero septiembre 8, 2010 a las 8:59 pm

    El programa de ordenamiento radix compila pero cuál sería un ejemplo de la cadena numérica a introducir.

    Saludos

  14. adrian agosto 19, 2010 a las 10:40 am

    necesito q m ayuden
    con un programa
    q ordene x numeros de menor a mayor con el metodo shell
    en dev-c++

  15. juanoy julio 21, 2010 a las 8:41 pm

    hola me a servudo mucho sus codigos, pero tengo un problema el heap sort no me funciona en c++ lo tengo asi:
    #include
    #define max 100
    using namespace std;

    int main()
    {
    int A[max],j,item,temp,i,k,n;
    cout<>n;
    for(i=1;i> A[i];

    for(k=n;k>0;k–)
    {
    for(i=1;i0 && A[j]<item)
    {
    A[i]=A[j];
    i=j;
    j=j/2;
    }
    A[i]=item;
    }
    temp=A[1];
    A[1]=A[k];
    A[k]=temp;
    }
    cout<<"El orden es:"<<endl;
    for(i=1;i<=n;i++){
    cout<<"Ingrese el elemento "<<i<> A[i];
    }
    system(“pause”);
    return 0;
    }

    ojala me puedan ayudar, lo otro es que el link para ver el metodo burbuja no funciona ya :/.
    gracias de antemano muy buen blog para comprender este tipo de algoritmos
    saludos

  16. Anónimo julio 14, 2010 a las 3:23 pm

    GRacias Por los programas son los mejores muchas gracias por la ayudan que proporcionan

  17. andres junio 19, 2010 a las 1:38 pm

    lo nesesito urgente porfa ok …

  18. andres junio 19, 2010 a las 1:37 pm

    quisiera un ejemplo de metodo buble sort en c++ para ordenar de mayor a menor y de mayor a menor 3,11,2,9,1por fabor mandamelo a mi correo por fabor amix

  19. avi junio 18, 2010 a las 7:27 pm

    SERA QEUM E PUEDEN AYUDAR LA VERDAD ES QUE TENGO QUE CREAR UN PROGRAMA QUE ME ORDENE MIL NUMEROS QEU SE ENCUENTREN EN UN FICHERO CON LOS SIGUIENTES METODOS:
    METODO DE BURBUJA
    METODO QUICK SORT
    METODO DE SELECCION DIRECTA
    METODO INSORT (o INSERCION DIRECTA)

    PORFAVOR SI ALGUIEN M PODRIA AYUDAR SE LO AGRADECERIA MUCHO EN VERDAD ME URGE PORFA AYUDENME MI CORREO ES <>

  20. soledad mayo 30, 2010 a las 2:08 pm

    ola
    tengo un problema esque estamos usando dev-c++ para hacer los programas pero aora que tenemos que utilizar la instruccion gotoxy no se como ponerla porque no la agarra y con el programa que muestran de shell nome corre
    grax de antemano y espero respuesta rapida

  21. antonio mayo 18, 2010 a las 6:56 pm

    oye una pregunta cuando trato de corres tus codigo en visual c++ 2008 expres ediccion me sale error este

    fatal error C1083: Cannot open include file: ‘leearreglo.h’: No such file or directory

    como lo puedo solucionar

    el codigo es el shell lo probe conlos demas y me sale lo mismo

    • sAfOrAs mayo 18, 2010 a las 11:40 pm

      el error es pq no has incluido la libreria leearreglo.h, es indispensable que lo incluyas en tu proyecto, no se si existe un directorio especial para hacerlo, pero me imagino k si, como headers o libraries…
      suerte

  22. sAfOrAs abril 29, 2010 a las 1:11 am

    ahi tienes el código, es sencillo, con una simple prueba de escritorio puedes darte cuenta lo k hace…

  23. panfila jilomena abril 28, 2010 a las 6:38 pm

    hola

    kieroo

    saberrrr

    sobre

    insersion

    lo

    ke

    pasa

    es

    kee

    miii

    profesorrrrrr

    deja

    kee

    noooosss

    injeniemossss

    solosss

    y

    esoo

    noo

    es

    justooo

    por esoo

    es

    ke

    kiero

    kee

    me

    ayuden

    esperooo

    respuestaa

    graciassss

    .

    .

    .

  24. goyo abril 28, 2010 a las 9:23 am

    quiten esto por q ni sirve

  25. paola abril 11, 2010 a las 12:49 pm

    disculpa necesito el metodo del ordenacion externa el metodo polifasico en verdad no lo encuentro por ningun lado, de verdad es urgente te agradecderia mucho si lo publicas, si codificacion, gracias.!!!

  26. david ... febrero 15, 2010 a las 5:25 pm

    espero les sirva

  27. liz paola febrero 1, 2010 a las 4:46 pm

    quiero porfa ayuda parz mi exposicion de metodo de ordenamiento por insercion n0 tngo nada y m voya aplasar xfanaaaaaaa

    • david ... febrero 15, 2010 a las 5:22 pm

      #include
      #include
      #include

      int i,j,aux,n;
      int ARREGLO[' '];
      void leer();
      void ordenar(int n,int ARREGLO[' ']);
      void mostrar(int n,int ARREGLO[' ']);

      main()
      {
      int opc;

      do
      {
      cout<<"1.- Leer."<<endl;
      cout<<"2.- Ordenar ."<<endl;
      cout<<"3.- Mostrar ."<<endl;
      cout<<"4.- Salir."<<endl<<endl;
      cout<>opc;
      cout<<endl;
      switch(opc)
      {
      case 1: leer(); break;
      case 2: ordenar(n,ARREGLO); break;
      case 3: mostrar(n,ARREGLO); break;
      case 4: break;
      }
      }while(opc!=4);
      }

      void leer()
      {
      cout<<"ingrese el numero de elementos q desea"<>n;
      cout<<endl;
      for(i=0;i<n;i++)
      {
      cout<<"Teclee el elemento "<<(i+1)<<" :"<>ARREGLO[i];
      cout<<endl;
      }
      }

      void ordenar(int n,int a[' '])
      {
      int menor;
      for(i=0;i<(n-1);i++)
      {
      menor = a[i];
      int avanza=i+1;
      int pos=i;
      while (avanza<n)
      {
      if (menor < a[avanza])
      {

      }
      else
      {
      menor= a[avanza];
      pos=avanza;
      }
      avanza ++;
      }
      aux = a [pos];
      a[pos]= a[i];
      a[i]= aux;
      }
      }
      void mostrar(int n,int ARREGLO[' '])
      {
      for(i=0;i<n;i++)
      {
      cout<<ARREGLO[i]<<" ";
      }
      cout<<endl<<endl;
      getch();
      }… y este es el metodo de ordenacion

  28. DANIEL diciembre 31, 2009 a las 5:44 pm

    me gusta mas C en vez de C++

  29. krizztian diciembre 3, 2009 a las 7:54 pm

    kisiera que me pudieran ayudar necesito un codigo en c++ sencillo que sea un menu que contenga los metodos de burbuja, seleccion, insercion y quicksort por favor ayudenmeeeee ia me mate la acabeza aciendolo y no me salllleeeee

  30. km0t noviembre 25, 2009 a las 3:54 pm

    gracias sAf0rAs!!!! excelentes codigos y q dcir de la ayuda mgnifik!!!

  31. km0t noviembre 25, 2009 a las 1:58 pm

    podrias agregar mi cuenta de msn para que me ayudes al_kmot@hotmail.com porfavor

    • sAfOrAs noviembre 25, 2009 a las 3:23 pm

      Hola km0t, bueno aclaro tu duda directamente asì los que lean este post ya no tengan k volver a preguntar…..
      En el còdigo hay una linea como la siguiente:

      for (k = 1; k < 5; k++)
      {
      /* Suponer que tenemos números de cuatro dígitos */

      el valor de k empieza en uno y es menor que 5 asì que el nùmero màximo de dìgitos que soporta es de 4, el problema en el ejemplo que mustras es que 3334556 tiene màs digitos de lo asignado, asì que tendrìas que cambiar k < 5 por k < 8 …, eso de acuerdo a cuantos digitos quieres que soporte tu codigo,

      Saludos!!!!!!

  32. km0t noviembre 25, 2009 a las 1:55 pm

    gracias probe con esto

    Cadena de números enteros:
    555 5557 334556 -1

    pero arrojo esta salida
    555
    334556
    5557

    creo que no los ordeno bien

  33. km0t noviembre 25, 2009 a las 1:16 pm

    Oye amigo puedes explikrme como utilizo el metodo radix lo ejecuto y me dice esto (((Cadena de números enteros:))) ahora como introdusco los datos, los separo x comas o como?? de antemano gracias

  34. km0t noviembre 25, 2009 a las 1:07 pm

    Oye amigo puedes explikrme como utilizo el metodo radix lo ejecuto y me dice esto (((Cadena de números enteros:))) ahora como introdusco los datos, los separo x comas o como?? de antemano gracias!!!!!

  35. edi septiembre 5, 2009 a las 6:10 pm

    hola…. necesito un programa que utilize metodos de ordenamiento con estructuras de por DIOS…. gracias ha y ejemplos…….!!!!

  36. Iver julio 6, 2009 a las 2:46 pm

    hola.. bueno yo soy nuevo esto de hacer algoritmos en c++ y me pidieron hacer y demostrar unos algoritmos de ordenamiento en lenguaje c++ q solo lean 10 caracteres y los ordene en el metodo de shell, en el binario y en Quick Sort.
    porfavor una ayuda y guias simples para este principiante.
    mi correo es dark_ive@hotmail.com

  37. roxxa junio 10, 2009 a las 12:30 pm

    oye saforas solo tengo problemas con el quicksort de hecho no me marca ningun error, de hecho lo compila y corre me pregunta cuantos elementos, los muestra pero no me los muestra ya ordenados se queda como bloqueado, me podrias dar una solucion

  38. roxxa junio 10, 2009 a las 12:26 pm

    hola saforas tus respuestas me han sido muy utiles, ya que estoy estudiando metodos de ordenamiento en dev c++y como soy principiante en programacion pues me han servido muchos tus respuestas, gracias

  39. abraham junio 4, 2009 a las 1:35 pm

    hola safora
    lo que pasa es q no se si me puedes ayudar a conseguir un program en c
    por el metodo de ordenamiento shell y q te haga un abusqueda secuencial

    espero un a respuesta satisfactoria

  40. Pedro mayo 29, 2009 a las 1:44 pm

    hola; necesito d esu ayuda tengo k hacer un menu con archivo donde tenga agregar. mostrar, eliminar, buscar y modificar con array y ordenarlo con el metodo de insercion binaria; mi duda es k cuando busca m muestra en error el stricmp(bin.n,cadena); donde para mi el bin.n es entero y m dice k tengo k manejarlo en char; por favor ayudeme se o agredeseria y por cierto no m ordena el metodo de insercion binaria; estoy manejando el compilador dev-c++, t paso el codigo para k m ayudena; tanto para buscar cmo para ordenar thanks si m ayudan x favor…espero pronta respuesta
    ///////////// MÉTODO PARA BUSCAR EN EL ARCHIVO/////////////////////
    void Encontrar(void)
    {
    FILE *fp;
    Insercion bin;
    int p;
    char cadena[50];
    printf(“\n BUSCAR LOS DATOS EN LA LISTA\n\n”);
    printf(“Teclee el numero a buscar: “);
    gets(cadena);
    printf(“\n—- BUSCADO EL NUMERO —-\n”);
    fp=abrir_fichero_b(fichero,0);
    if(!(fp))//proceso que nos indica que el archivo no fue abierto
    printf(“\n Error el archivo agenda.dat no fue abierto\n”);
    else
    {
    while ((p=fread(&bin, sizeof(bin), 1, fp))!=0 && stricmp(bin.n,cadena)!=0);
    if (p==0)
    printf(“No existe ese numero: %s “,cadena);
    else
    {
    printf(“\n Numero encontrado con Exito!!!!!\n\n”);
    for (bin.numero=0; bin.numero<bin.n; bin.numero++)
    {
    printf(" Sus Numero son: %d\n",bin.arreglo[bin.numero]);// muestra los diferentes numeros
    }
    }
    }
    }
    /////////////////////////////////////////////////////////////////////
    la de insercion binaria es

    ////////MÉTODO INSERCIÓN BINARIA////////////////////////////////////
    void InsercionBinaria(void)
    {
    FILE *fp;//Se crea un fichero
    Insercion bin;//
    int n,i,j,aux,izq,der,m, lis;
    fp=abrir_fichero_b(fichero,3);//Se abre el fichero creado
    if(!(fp))//proceso que nos indica que el archivo no fue abierto
    printf("\n Error el archivo agenda.dat no fue abierto\n");
    else
    {
    printf("Que lista desee ordenar");
    scanf ("%d",&lis);
    if(lis)
    for(bin.numero=1;bin.numero<bin.n;bin.numero++)
    {
    aux = bin.arreglo[bin.numero];
    izq=0;
    der=bin.numero-1;
    while(izq<=der)
    {
    m=((izq+der)/2);
    if (aux=izq)
    {
    bin.arreglo[j+1]=bin.arreglo[j];
    j=j-1;
    }
    bin.arreglo[izq]=aux;
    fwrite(&bin,sizeof(bin), 1, fp);//Escribe en el archivo los datos
    fclose(fp);
    }
    }
    }

    mis estructuras son:
    #define NUM 50
    typedef struct //Crea una estructura en donde contendra los siguientes datos:
    {
    int numero; // Numero de la lista
    int arreglo[NUM];
    int n;
    }Insercion;

    ayude por favor
    thanks
    XD

  41. Ramon mayo 18, 2009 a las 9:26 pm

    Oye saforas,pon tu correo para mandarte un programa en c++ que contiene tus programas de ordenamiento un poco modificados,en cuanto lo pongas y yo lo vea te los mando.Yo los use y me sirvieron mucho.Por eso quiero regresar el regalito.No siempre puedo acceder a internet por la cuestion monetaria,pero en cuanto lo haga te los mando,claro si esta tu correo.
    Hasta pronto.

  42. farm mayo 17, 2009 a las 9:55 pm

    Genial, me has salvado de una dura, se te agradece bastante eres un verraco.

  43. yuki mayo 16, 2009 a las 10:16 am

    gracias gracias gracias creo ke es la pagina donde me dicen las cosas de una manera que realmente entiendo muchas gracias por tus programas ^^

  44. Anónimo marzo 26, 2009 a las 2:13 pm

    son una bola de pendejos ponganse a estudiar

  45. hola es urgente diciembre 14, 2008 a las 3:43 pm

    hola tengo un problema con un codigo en c++ se supone q este codigo deberia de mostrarme en pantalla el arreglo debidamente ordenado de forma creciente pero no lo hace solo me dice: que presione cualquier tecla para continuar lo hago y sale del programa porq sera. el codigo es #include
    #define MAXC 7

    void main()
    {
    int array[MAXC]={6,1,5,2,3,4,0};
    int cont,pasos,temp,i;

    for (cont =MAXC/2;cont!=0;cont/=2)
    for (pasos=1;pasos!=0;)
    {
    pasos=0;
    for (i=cont; iarray [i])
    {
    temp =array [i];
    array [i]=array [i-cont];
    array [i-cont]=temp;
    pasos++;
    }
    }

    }

  46. sAfOrAs noviembre 30, 2008 a las 12:37 am

    Hola jhon, gracias por dejar tu código, a la gente le será re-util….
    Si quieres puedes subscribirte a : http://groups.google.com.pe/group/somoscodigolibre
    y subir al repositorio los códigos que desees compartir!!

    Saludos y suerte!!!

  47. Diana noviembre 28, 2008 a las 7:30 pm

    Gracias me fue de mucha utilidad
    me corrieron a la perfeccion

  48. jhon noviembre 28, 2008 a las 12:27 pm

    //ojala les sirva jeje ta chevre la pagina sigan poniendo chicos cosa buenas
    #include
    #include
    #include

    struct alumno{
    char nombre[15];
    char apellidop[15];
    char apellidom[15];
    int codigo;

    }est[50];
    struct curso{ char nombrec[20];
    float nota1;
    float nota2;
    float nota3 ;
    float promedio;

    }curso[20];

    main(){
    int i,j,n,m;
    clrscr();
    gotoxy(30,5);cout<<” ESTRUCTURA ALUMNO”;
    gotoxy(30,6);cout<<” =================”;
    cout<<”\n———————————————————————–”;
    cout<>n;
    for(i=1;i<=n;i++){
    cout<<”\n——INGRESE DATOS DEL ESTUDIANTE—-:\t”<<i;
    cout<>est[i].nombre;
    cout<>est[i].apellidop;
    cout<>est[i].apellidom;
    cout<>est[i].codigo;}
    cout<<”\n————————————————————————”;
    cout<>m;

    for(j=1;j<=m;j++){
    cout<<”\n—- INGRESE EL NUMERO DE CURSOS:—–”<<j;
    cout<>curso[j].nombrec;
    cout<>curso[j].nota1;
    cout<>curso[j].nota2;
    cout<>curso[j].nota3;
    curso[j].promedio=(curso[j].nota1+curso[j].nota2+curso[j].nota3)/3;

    }
    cout<<”\n\n————————————————————————-”;
    for(i=1;i<=n;i++){
    cout<<setw(12)<<”\nNOMBRE:”<<est[i].nombre;
    cout<<setw(12)<<”\nAPELLIDO PATERNO:”<<est[i].apellidop;
    cout<<setw(12)<<”\nAPELLIDO MATERNO:”<<est[i].apellidom;
    cout<<setw(12)<<”\nCODIGO:”<<est[i].codigo;
    cout<<”\n\n————————————————————————–”;

    }

    cout<<”\n\n————————————————————————-”;
    for(j=1;j<=n;j++){
    cout<<setw(12)<<”\nNOMBRE DEL CURSO:”<<curso[j].nombrec<<endl;
    cout<<setw(12)<<”\nNOTA PROMEDIO DEL CURSO:”<<curso[j].promedio<<endl;

    }
    cout<<”\n\n———Gracias por Utilizar mi Programa————————————”;

    getch();
    return 0;
    }

  49. ANDREA noviembre 27, 2008 a las 2:51 pm

    OYE QUE BUEN SITIO, DE VERDAD TE FELICITO.
    EXCELENTE TRABAJO

  50. ephemeral noviembre 16, 2008 a las 2:16 pm

    Gracias por los algoritmos, funcionan muy bien!!

  51. sAfOrAs noviembre 6, 2008 a las 3:12 pm

    hola juan, no creo que el código de shell no te funcione, todos son correctamente probados antes de subirlo a la red.

    Y ya he agregado el ordenamiento por radix, espero que te sirva. La petición de números de radix acaba cuando ingresas -1
    saludos!!

  52. juan mendez noviembre 6, 2008 a las 12:59 pm

    aljien podria mandarme el codigo de radix en c++ pero que funsione por que este codijo de sell sort no funsiona grasias

  53. sAfOrAs octubre 18, 2008 a las 9:59 pm

    Es posible que te dé error en #include”leearreglo.h” si no incluiste ese archivo en el mismo directorio o proyecto del código que lo llama, creo que ya le expliqué a alguien antes!!!

    Esta es la librería que los 6 codigos anteriores lo utilizan: leearreglo.h

  54. rosmy octubre 18, 2008 a las 4:26 pm

    Hola como estas ,quiero saber porque en los metodos de ordenamiento me sale error en #include “leearreglo.h” y using namespace std.
    gracias respondeme rapido.

  55. SM septiembre 22, 2008 a las 8:25 pm

    HI!! como esta hasta ahora q entro a sta pagina y sta muy interesante, bueno fijate que stoy llevando un curso de c++ y me esta costando un poco con el tema de ordenamientos sera q me puedes mostrar algunos ejemplos para poder comprenderlos mejor, de antemano gracias por tu respuesta

  56. pochunguito septiembre 9, 2008 a las 10:06 pm

    hola amigo, gracias por preocuparte y dar un poco de tu tiempo en prestar tu ayuda en contestar algunas dudas acerca de la programacion, quiero aprender a programar aunque conozco lo basico y se que voy a aprender, gracias por tus respuestas… suerte

  57. alex_xela septiembre 4, 2008 a las 10:15 pm

    buenas pues yo tambien felicito a saforas por muy buen foro de verdad que esto hace falta para mucho mas temas yo tambien estoy con el tema de leonidas sobre en donde se puede utilizar los metodos de ordenamiento y la diferencia de utilizar uno y otro muchas gracias y sigue adelante

  58. leonidas agosto 3, 2008 a las 4:33 pm

    si de todas formas… muchas gracias… saludos!

  59. sAfOrAs agosto 3, 2008 a las 12:13 am

    muy buena pregunta leonidas…
    verás, la utilización de los diversos métodos de ordenamiento en el lenguaje que sea, se hace dependiendo de su uso, por ejemplo, hay métodos que funcionan mejor en ciertos casos y que son un drama en otros.
    En cuanto a su aplicación, en el mundo de la web es muy importante como en cualquier aplicación que se vincula con cierta base de datos, por ejemplo, google u otros buscadores se encargan de ordenar sus resultados teniendo en cuenta la importancia de la web, en relación con su número de vínculos entrantes, salientes,etc;es decir, cuantifica su relevancia.

    Los pagerank’s también tienen que usar métodos de ordenamientos para listar ordenadamente las webs con más valoración desde diversas perspectivas.

    En el caso de los web/blogs, hay quienes mustran las entradas más vistas, como en éste, lo hacen ordenadamente según el resultado del análisis de la cantidad de visitas que tiene cada post.

    Por lo tanto, es común que usemos métodos de ordenamiento como una herramienta más de los métodos de búsqueda.

    Casi todas las webs cuentan con un motor de base de datos, por el cual es necesario contar con métodos de búsquedas para localizar información y métodos de ordenamiento para mostrarlos.

    Espero haberte dado algo de luces en este aspecto, te invito a buscar mas info en la web que este tema es sumamente importante.
    Saludos.

  60. leonidas agosto 2, 2008 a las 11:04 pm

    wenas!! me parece muy wena tu iniciativa de este blog, tipo foro que ayudas a los demas a comprender mejor la algoritmia... ahora mas alla de problemas con las metodologias de ordenamiento, quisiera saber que aplicacion tendria un ordenamiento en lenguajes orientados a la web, como paginas o algun tema relacionado a eso... agradeceria tu respuesta y conocer algo mas acerca de la implementacion de estos...

  61. sAfOrAs julio 29, 2008 a las 4:34 pm

    hey, que tal Ronald, felicitaciones por la buena nota, regresa pronto!!!

  62. Ronald Mieles julio 29, 2008 a las 3:37 pm

    Muchas gracias Yovana y a quien te ayudo que no se como se llama, me sirvio de mucho todo lo que pusieron ya que como lo especifican lo pude ejecutar, he aprendido con usted mucho y saque una buena nota en un exposion de este tema.

    Saludos

    Ronald

  63. sAfOrAs junio 30, 2008 a las 3:33 am

    O_O, Hola Penelope, la verdad que no he notado error en el método, podrías decirme cuales son los datos que ingresas?
    Ten en cuenta que el primer valor ingresado es la cantidad de numeros que ingresarás, luego de eso tienes que ingresar los n numeros que pusiste en un inicio.

    puedes sustituir estas lineas :

    for(i=1;i<=n;i++)
    cin >> A[i];

    por estas:

    for(i=1;i<=n;i++)
    {
    cout<<”Ingrese el elemento “<<i<<” : “;
    cin >> A[i];
    }

    para hacer más comprensible el proceso.
    saludos…

  64. Penelope junio 28, 2008 a las 8:31 pm

    El HeapSort No ordena correctamente, cual es la solucion

  65. sAfOrAs junio 18, 2008 a las 12:03 pm

    vale Chany, entonces esto te podría ayudar a comprender, aunque el código es prácticamente lo mismo.

    Ordenamiento en C++

    solo incluyo la explicación del algoritmo de cada método.
    saludos…

  66. Soy Chany junio 17, 2008 a las 9:52 pm

    yo sòlo necesito hacer un ejercicio de cada ordenamiento: shell, arbol, burbuja y quick sort, la verdad, es que no entiendo mucho. Cual es LA PÁGINA MÁS FACIL DE ENTENDER???, GRACIAS.

  67. ozzy junio 14, 2008 a las 2:29 pm

    hola alguien que me ayude, nesecito un compilador que haga lo mas basico como reconocer unas cuantas sentencias, hecho en c++, urge muchisimo

  68. Pingback: Métodos de ordenamiento hecho en java « Saforas’$ the::beastieux

  69. sAfOrAs junio 12, 2008 a las 12:14 am

    Buena observación!!!
    Lo cierto es que no he usado en muchas ocasiones Dev C++, pero seguro te sucede lo que me sucedió cuando use esta IDE por primera vez.
    Lo que pasa es que Dev-C++ no soporta la dichosa generación automática de pausas, por lo que cuando ejecutas el programa, te pide que ingreses los datos, pero no puedes ver los resultados porque la ventana se cierra inmediatamente.

    para que soluciones este problema basta con hacer lo siguiente:

    int main ( )
    {
    .
    .
    .

    system(“pause”); //código que debes aumentar
    return 0;
    }

    con ese system(“pause”); antes del return 0 seguro que no tendrán problemas en ningún código!!!
    Era eso lo que te sucedía??? bye!!

  70. yovana junio 11, 2008 a las 4:48 pm

    hola sabes ya me corrio el programa pero se supone que tiene q ordenarlo y mostrarlo pero no muestra nada

  71. sAfOrAs junio 10, 2008 a las 1:55 pm

    como vas yovana, ….
    dev-C++, ese solo es una IDE, que ayuda a programar y compilar en C++, pero el lenguaje es solo “c++”:) bueno, el código que mencionas, el shell, lo compilé con g++, no he tenido ningún problema, pero ahora que lo dices lo he hecho con dev-C++, .
    Lo primero que hice es crear un nuevo source desde el menu archivo(file):

    file – new – source file

    ahí copie el código shell.
    al momento de compilar te pedirá que le pongas un nombre, si antes ya no lo habías hecho, puedes ponerlo por ejemplo shell.cpp, el nombre puede ser cualquiera, pero siempre al final un .cpp
    -compilé, y efectivamente sale el error que tu mencionas.
    ese error es porque muestraCadena y leeCadena están incluidos en la librería leearreglo.h, al cual invocamos en el comienzo del código, pero no lo encuentra, ya que no lo puse en el mismo proyecto.

    Por lo tanto ahora hacemos otra vez file – new – source file
    copiamos el còdigo de leearreglo.h
    lo compilamos, y cuando nos pide un nombre, lo ponemos exactamente como este: leearreglo.h esto es muy importante, ya que es el nombre que invocamos en el código, el .h indica que es solo una librería, o sea no se le podrá ejecutar solo, ya que no tiene un main() en su código.

    Ahora compilamos, y todavía habrá un error más, lo que pasa es que cuando yo compile con g++ no me votó ese error, o no lo consideró como error.
    pero en dev-C++ debemos cambiar el tipo de dato de retorno void del ‘main()’ con un int, y darle un valor de retorno de 0.

    int main ( )
    {

    .
    .
    .

    return 0;
    }

    el main debe quedar como ese.
    ahora sí, volvemos a compilar y todo ok!
    es seguro que en los demás códigos también se encuentre ese problema, pues dev-C++, no acepta en el main un valor void, o eso es lo que parece!!!
    saludos….

  72. yovana junio 10, 2008 a las 12:59 pm

    hola una pregunta mira yo estoy utilizando la sodificación de ordenamiento shell y me sale dos errores una es en esta :
    leeCadena(n,A);
    y la otra en esta:
    muestraCadena(n,A);
    estoy utilizando el lenguaje dev-C++
    espero tu respuesta………………….

  73. sAfOrAs junio 9, 2008 a las 3:52 pm

    va a dar error si no incluyes la la libreria leearreglo.h, y el using namespace std; se usa para poder utilizar el cin>> el cout<< y el endl; en el código.

  74. made junio 9, 2008 a las 2:37 pm

    no entendi nada xD
    kuak!

  75. Hector junio 4, 2008 a las 7:42 pm

    es un ordenamiento este es el codigo :

    //Quick Sort
    #include
    #define largo 100
    #include”leearreglo.h”
    using namespace std;
    void quicksort(int A[],int izq, int der )
    {
    int i, j, x , aux;
    i = izq;
    j = der;
    x = A[ (izq + der) /2 ];
    do{
    while( (A[i] < x) && (j <= der) )
    {
    i++;
    }

    while( (x izq) )
    {
    j–;
    }

    if( i <= j )
    {
    aux = A[i]; A[i] = A[j]; A[j] = aux;
    i++; j–;
    }

    }while( i <= j );

    if( izq < j )
    quicksort( A, izq, j );
    if( i < der )
    quicksort( A, i, der );
    }

    void main ()
    {
    int A[largo],n;
    do{
    cout<>n;
    if(nlargo)
    cout< a 0 y < a “<<largo<<endl;
    }while(nlargo);
    leeCadena(n,A);
    quicksort(A,0,n-1);
    muestraCadena(n,A);

    }

  76. Hector junio 4, 2008 a las 7:20 pm

    para que sirve el using namespace std es que cuando lo compilo en el borland 5.01 me dice que hay error ahi.

  77. sAfOrAs mayo 20, 2008 a las 10:31 pm

    ok alexandro, el #include “leearreglo.h”, es una libreria que es invocada desde los programas realizados, más específicamente, son llamados desde todas las funciones de ordenamiento que hice, excepto desde heap sort. Presenta solo 2 procedimientos:
    void leeCadena(int cant,int n[]) //pide el ingreso de numeros, dependiendo de la cantidad (int cant) mandada, y se almacena en el arreglo n[]

    void muestraCadena(int cant,int n[]) // muestra todos los elementos del arreglo.

    Si no incluyes esta libreria que adjunté al final de los 6 codigos de ordenamiento, los programas no correrán, exceptuando el heap sort que no necesita de esta libreria, pues debes tenerlo en el mismo proyecto si trabajas con algún IDE, o en la misma carpeta si compilas y ejecutas directamente.
    saludos!!

  78. alexandro mayo 20, 2008 a las 9:29 pm

    epa man solo tengo una preguna que para que es esta sentencia #include”leearreglo.h”

  79. sAfOrAs abril 9, 2008 a las 10:09 pm

    como estás …
    primeramente, no se con k compilador estás usando, en linux yo use g++
    para compilar solo debes copiar el archivo a algun editor y guardarlo con extensión cpp.
    luego compilar con:
    $ g++ nombre_del_archivo.cpp -o nombre_del_archivo
    para ejecutar:

    $ ./nombre_del_archivo

    suerte :)

  80. roberto abril 9, 2008 a las 5:27 pm

    no m korre ningun programa k puedo hacer

No te quedes callado. Pregunta, Comenta, Comparte, Sígueme, Suscríbete, Déjame tu opinión... Soy Beastieux Zeroo...

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 65 seguidores