public static void Quicksort(ListEntry[] elements, int left, int right) { int i = left, j = right; ListEntry pivot = elements[(left + right) / 2]; while (i <= j) { while (elements[i] < pivot) { i++; } while (elements[j] > pivot) { j--; } if (i <= j) { // Swap ListEntry tmp = elements[i]; elements[i] = elements[j]; elements[j] = tmp; i++; j--; } } // Recursive calls if (left < j) { Quicksort(elements, left, j); } if (i < right) { Quicksort(elements, i, right); } }