public class QuickSort<T extends Comparable<T>> extends TriediaciAlgoritmus<T> {
@Override
protected void utried(int dlzkaPola) {
quickSort(p, 0, p.length - 1);
}
private void quickSort(T[] p, int odIdx, int poIdx) {
if (poIdx <= odIdx)
return;
int pivotIdx = rozdel(p, odIdx, poIdx);
quickSort(p, odIdx, pivotIdx - 1);
quickSort(p, pivotIdx + 1, poIdx);
}
private int rozdel(T[] p, int odIdx, int poIdx) {
int pivotIdx = poIdx;
int idx = odIdx;
for (int i = odIdx; i < poIdx; i++) {
if (porovnaj(i, pivotIdx) < 0) {
vymen(i, idx);
idx++;
}
}
vymen(idx, pivotIdx);
return idx;
}
}