Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Ejercicio: Algoritmo de Ordenacion Rapida o QuickSort
- Autor: Joel Fernandez
- Fecha: 13/06/2014 8:45 p.m.
- IDE: CodeBlocks
- Pagina Web: http://codebotic.blogspot.com
- Descripcion: Implementacion de algoritmo de Ordenamiento Rapido o QuickSort
- */
- #include<iostream>
- #include<conio.h>
- #define MAX 50
- using namespace std;
- void LeerArreglo(int,int []);
- void Quicksort(int [],int,int);
- void MuestraArreglo(int,int []);
- int main(void)
- {
- system("color 0a");
- int Numeros[MAX];
- int n;
- cout<<"\t****************************************************\n";
- cout<<"\t*** ALGORITMO DE ORDENAMIENTO QUICKSORT ***\n";
- cout<<"\t*** ----------------------------------- ***\n";
- cout<<"\t****************************************************\n\n\n";
- cout<<"\n\nNUMERO DE DATOS A LEER:"; cin>>n;
- LeerArreglo(n,Numeros); //ingreso de datos en array
- Quicksort(Numeros,0,n-1); // '0' es el primer elemento y n-1 es ultimo
- cout<<endl<<"\n\n LOS ELEMENTOS FUERON ORDENADOS \n\n"<<endl;
- MuestraArreglo(n,Numeros); //muestra array ordenado
- getch();
- return 0;
- }
- void Quicksort(int arreglo[],int primero, int ultimo)
- { int i,j,aux, pivote;
- i=primero;
- j=ultimo;
- pivote=arreglo[(primero+ultimo)/2];//es el elemento medio del arreglo
- do {
- while(pivote>arreglo[i])
- i++;
- while(pivote<arreglo[j])
- j--;
- if(i<=j)
- { aux=arreglo[i];
- arreglo[i]=arreglo[j];
- arreglo[j]=aux;
- i++;
- j--;
- }
- }while(i<=j);
- if(primero<j)
- Quicksort(arreglo,primero,j);
- if(ultimo>i)
- Quicksort(arreglo,i,ultimo);
- }
- void LeerArreglo(int n,int array[])
- { for(int i=0; i<n; i++)
- {cout<<"\n INGRESE ELEMENTO ["<<i<<"]: "; cin>>array[i];}
- }
- void MuestraArreglo(int n, int array[])
- {int i;
- for(i=0; i<n; i++)
- cout<<"["<<array[i]<<"] ";
- }
Advertisement
Add Comment
Please, Sign In to add comment