#include /****************************************************************************/ /* Sortiranje QuickSort algoritmom. Prvi element x[l] je kljucni element i dovodimo ga na pravo mjesto u polju. */ /* Funkcija za zamjenu dva elementa. */ void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; return; } /* ======================================================================== */ /* Rekurzivna funkcija za quick_sort. */ void quick_sort(int x[], int l, int d) { int i, j; if (l < d) { i = l + 1; j = d; /* Prolaz mora i za i == j */ while (i <= j) { while (i <= d && x[i] <= x[l]) ++i; while (x[j] > x[l]) --j; if (i < j) swap(&x[i], &x[j]); } if (l < j) swap(&x[j], &x[l]); quick_sort(x, l, j - 1); quick_sort(x, j + 1, d); } return; } /****************************************************************************/ int main(void) { int i, n; int x[] = {42, 12, 55, 94, 18, 44, 67}; n = 7; quick_sort(x, 0, n - 1); printf("\n Sortirano polje x:\n"); for (i = 0; i < n; ++i) { printf(" x[%d] = %d\n", i, x[i]); } return 0; }