aeds2/fonte/U4 - Ordenação em memória p.../c/quicksort.h

26 lines
872 B
C

#ifndef QUICKSORT_H
#define QUICKSORT_H
//=============================================================================
#include "geracao.h"
//=============================================================================
void quicksortRec(int *array, int esq, int dir) {
int i = esq, j = dir;
int pivo = array[(dir+esq)/2];
while (i <= j) {
while (array[i] < pivo) i++;
while (array[j] > pivo) j--;
if (i <= j) {
swap(array + i, array + j);
i++;
j--;
}
}
if (esq < j) quicksortRec(array, esq, j);
if (i < dir) quicksortRec(array, i, dir);
}
//=============================================================================
void quicksort(int *array, int n) {
quicksortRec(array, 0, n-1);
}
//=============================================================================
#endif