public void quickSort(int[] pole, int l, int r) { int zacatek; int konec; if (l < r) { int pivot = pole[(l + r) / 2]; // pivot nastaven na prostřední prvek oblasti zacatek = l; konec = r; do { while (pole[zacatek] < pivot) { zacatek++; } while (pole[konec] > pivot) { konec--; } if (zacatek <= konec) { swap(pole, zacatek, konec); zacatek++; konec--; } } while (!(zacatek > konec)); // Rozdělení je dokončeno, nové intervaly jsou a if (konec - l <= r - zacatek) //kratší úsek třídíme nejprve { quickSort(pole, l, konec); quickSort(pole, zacatek, r); } else { quickSort(pole, zacatek, r); quickSort(pole, l, konec); } } } public void swap(int[] pole, int index1, int index2) { int temp = pole[index1]; pole[index1] = pole[index2]; pole[index2] = temp; }