Ordenamiento Quicksort

Ordenamiento Quicksort

Antes que nada aclararles que este es un ordenamiento recursivo y uno de los mas efectivos para ordenar.



// @parametros : arreglo,indice inicio,indice final
static void sort(int a[], int lo0, int hi0) {

int lo = lo0;
int hi = hi0;

if (lo >= hi) {
return;
}
int mid = a[(lo + hi) / 2];
while (lo < hi) {
while (lo<hi && a[lo] < mid) {
lo++;
}
while (lo<hi && a[hi] >= mid) {
hi--;
}
if (lo < hi) {
int T = a[lo];
a[lo] = a[hi];
a[hi] = T;
}
}
if (hi < lo) {
int T = hi;
hi = lo;
lo = T;
}
sort(a, lo0, lo);
sort(a, lo == lo0 ? lo+1 : lo, hi0);
}

static void sort(int a[]) {
sort(a, 0, a.length-1);
}

0 comentarios: