#include #include #define PRVKU 12 //int pole[] = {10,12,15,13,10,16,8,9,12,7,19,20}; int pole[] = {1,1,1,1,1,1,1,1,1,1,1,2}; void quicksort(int l, int r, int pivot) { int i, j, buf; i = l; j = r; while (1) { while (pole[i] < pivot) { i++; if (i > j) break; } if (i > j) break; while (pole[j] > pivot) { j--; if (i > j) break; } if (i > j) break; // musí platit i < j buf = pole[i]; pole[i] = pole[j]; pole[j] = buf; i++; j--; if (i > j) break; } printf("levy: %d - %d\n", l, j); // tady musí být podmínka, že i <= r, resp. i < r printf("pravy: %d - %d\n", i, r); } int median(int i, int j, int k) { if (j >= i) { if (k >= j) return j; else if (k >= i) return k; else return i; } // j < i else { if (k >= i) return i; else if (k >= j) return k; else return j; } } int main() { int i; printf("median: %d\n", median(5, 6, 7)); printf("median: %d\n", median(5, 7, 6)); printf("median: %d\n", median(6, 5, 7)); printf("median: %d\n", median(6, 7, 5)); printf("median: %d\n", median(7, 6, 5)); printf("median: %d\n", median(7, 5, 6)); for (i = 0; i < PRVKU; i++) printf("%d, ", pole[i]); printf("\n"); quicksort(0, PRVKU-1, 1); printf("\n"); for (i = 0; i < PRVKU; i++) printf("%d, ", pole[i]); return 0; }