23 lines
748 B
C
23 lines
748 B
C
#include "quicksort.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);
|
|
}
|
|
//=============================================================================
|