In my code, the method will call itself (recursion). We know, a deep method call will lead to stack overflow. So, will a stack overflow happen when there is a big number of data?
My QuickSort code: (inner class of a sort class)
private static class QuickSortor extends Sortor {
protected <E> void sort(E[] a, boolean isAsc) {
quickSort(a, 0, a.length - 1, isAsc);
}
private <E> void quickSort(E[] a, int left, int right, boolean isAsc) {
if (left >= right)
return;
int middle = left;
Comparable<E> cmp = (Comparable<E>) a[left];
for (int i = left + 1; i <= right; i++) {
int result = cmp.compareTo(a[i]);
if (!isAsc)
result = -result;
if (result >= 0)
swap(a, ++middle, i);
}
swap(a, left, middle);
quickSort(a, left, middle - 1, isAsc);
quickSort(a, middle + 1, right, isAsc);
}
}