これは私を夢中にさせています。これが1回限りのエラーの原因であることはわかっていますが、何らかの理由で、パーティション関数が正しくパーティション分割されていません. 私は何を間違っていますか?
public static int partition(int numbers[], int lhs, int rhs) {
int pivot = numbers[(rhs - lhs) / 2];
int lIndex = lhs - 1;
int rIndex = rhs + 1;
while (true) {
while (numbers[++lIndex] < pivot);
while (numbers[--rIndex] > pivot);
if (lIndex > rIndex) break;
int temp = numbers[lIndex];
numbers[lIndex] = numbers[rIndex];
numbers[rIndex] = temp;
}
return lIndex;
}