document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2.   Ejercicio: Algoritmo de Ordenacion Rapida o QuickSort
  3.   Autor:   Joel Fernandez
  4.   Fecha: 13/06/2014 8:45 p.m.
  5.   IDE: CodeBlocks
  6.   Pagina Web: http://codebotic.blogspot.com
  7.   Descripcion: Implementacion de algoritmo de Ordenamiento Rapido o QuickSort
  8.  */
  9.  
  10. #include<iostream>
  11. #include<conio.h>
  12. #define MAX 50
  13.  
  14. using namespace std;
  15. void LeerArreglo(int,int []);
  16. void Quicksort(int [],int,int);
  17. void MuestraArreglo(int,int []);
  18.  
  19. int main(void)
  20. {
  21.    system("color 0a");
  22.    int Numeros[MAX];
  23.    int n;
  24.    cout<<"\\t****************************************************\\n";
  25.    cout<<"\\t***      ALGORITMO DE ORDENAMIENTO QUICKSORT     ***\\n";
  26.    cout<<"\\t***      -----------------------------------     ***\\n";
  27.    cout<<"\\t****************************************************\\n\\n\\n";
  28.  
  29.    cout<<"\\n\\nNUMERO DE DATOS A LEER:"; cin>>n;
  30.  
  31.    LeerArreglo(n,Numeros);  //ingreso de datos en array
  32.    Quicksort(Numeros,0,n-1); // \'0\' es el primer elemento y n-1 es ultimo
  33.    cout<<endl<<"\\n\\n LOS ELEMENTOS FUERON ORDENADOS \\n\\n"<<endl;
  34.    MuestraArreglo(n,Numeros); //muestra array ordenado
  35.  
  36.     getch();
  37.     return 0;
  38. }
  39.  
  40. void Quicksort(int arreglo[],int primero, int ultimo)
  41.  { int i,j,aux, pivote;
  42.  i=primero;
  43.  j=ultimo;
  44.  pivote=arreglo[(primero+ultimo)/2];//es el elemento medio del arreglo
  45.  do {
  46.  
  47.      while(pivote>arreglo[i])
  48.      i++;
  49.      while(pivote<arreglo[j])
  50.      j--;
  51.      if(i<=j)
  52.      { aux=arreglo[i];
  53.      arreglo[i]=arreglo[j];
  54.      arreglo[j]=aux;
  55.       i++;
  56.       j--;
  57.         }
  58.      }while(i<=j);
  59.      if(primero<j)
  60.        Quicksort(arreglo,primero,j);
  61.      if(ultimo>i)
  62.        Quicksort(arreglo,i,ultimo);
  63.  
  64.   }
  65.  
  66.  
  67. void LeerArreglo(int n,int array[])
  68. { for(int i=0; i<n; i++)
  69.   {cout<<"\\n INGRESE ELEMENTO  ["<<i<<"]:  ";  cin>>array[i];}
  70.   }
  71.  
  72. void MuestraArreglo(int n, int array[])
  73. {int i;
  74.  for(i=0; i<n; i++)
  75.      cout<<"["<<array[i]<<"]  ";
  76. }
');