Ordenamiento de arreglos por el método rápido (quicksort)
PROG0021 - C/C++ (Codigo)
El método rápido o quicksort, es el algoritmo para ordenamiento de arreglos más rápido que existe. Además, es matemáticamente demostrable, que no puede existir un método mejor. Se basa en el principio "divide y vencerás". Su implementación sin embargo, reviste complejidad, ya que se trata de un algoritmo recursivo por naturaleza.
El método rápido o quicksort, es el algoritmo para ordenamiento de arreglos más rápido que existe. Además, es matemáticamente demostrable, que no puede existir un método mejor. Se basa en el principio "divide y vencerás". Su implementación sin embargo, reviste complejidad, ya que se trata de un algoritmo recursivo por naturaleza.
void SortArray (int array[],int first,int last)
{
* *int i,j,p,t;
* *// i se hace igual al índice del primer elemento*
* *i= first;*
* *// y j igual al índice del último elemento
* *j= last;*
* *// p se hace igual al elemento pivote del arreglo
* *p= array[(first+last)/2];*
* *do {
* * * // se hace la partición del arreglo
* * * while (array<p) i++;
* * * while (p<array[j]) j--;
* * * * *if (i<=j)
* * * * *{
* * * * * * // se intercambian los elementos i-esimo y j-esimo del arreglo
* * * * * * t= array;
* * * * * * array= array[j];
* * * * * * array[j]= t;
* * * * * * i++;
* * * * * * j--;
* * * * *}
* *} while (i<=j);
* *if (first<j) SortArray(array,first,j);
* *if (i<last) SortArray(array,i,last);
}
No puedes ver links
Registrate o Login