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

Pueder ir al artículo principal:

Códigos Sencillos hechos en C++

111 thoughts on “Métodos de ordenamiento hecho en C++

  1. I’d like to thank you for the efforts you have put in penning this blog. I am hoping to see the same high-grade content from you later on as well. In truth, your creative writing abilities has encouraged me to get my very own site now 😉

  2. I believe what you wrote was very reasonable. But, what about this?
    suppose you were to write a killer title? I am not suggesting your content
    isn’t good., but suppose you added a title that makes people want more? I mean Métodos de ordenamiento hecho en C++ | The::Beastieux is a little boring. You should peek at Yahoo’s front page and watch how they create news titles to get
    viewers to open the links. You might add a related video
    or a related pic or two to get readers interested about everything’ve got to say. Just my opinion, it would bring your posts a little livelier.

  3. Unquestionably believe that which you said. Your favorite justification appeared to be
    on the web the easiest thing to be aware of. I
    say to you, I certainly get annoyed while people consider worries that they just do
    not know about. You managed to hit the nail upon the top
    as well as defined out the whole thing without having side-effects ,
    people can take a signal. Will likely be back to get more.
    Thanks

  4. Greetings from Idaho! I’m bored at work so I decided to browse your blog on my iphone during lunch break. I love the information you provide here and can’t wait to take a look when I
    get home. I’m surprised at how quick your blog loaded on my cell phone .. I’m not even
    using WIFI, just 3G .. Anyways, amazing site!

  5. 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. 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. 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.

    1. 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. 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

    1. 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. 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. oigan me mandaron a averiguar sobre el metodo de ordenamiento “switch” alguien podria decirme en ke consiste? o darme un ejemplo para trabajarlo?

  11. 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. 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

    1. 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. 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

  14. 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

  15. 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 <>

  16. 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

  17. 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

    1. 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

  18. 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

    .

    .

    .

  19. 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.!!!

    1. #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

  20. 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

    1. 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!!!!!!

  21. 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

  22. 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!!!!!

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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.

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

  30. 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++;
    }
    }

    }

  31. //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;
    }

  32. 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!!

  33. 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

  34. 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.

  35. 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

  36. 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

  37. 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

  38. 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.

  39. 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...

  40. 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

  41. 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…

  42. 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.

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

  44. 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!!

  45. 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….

  46. 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………………….

  47. 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);

    }

  48. 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!!

  49. 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 🙂

Deja un comentario