privateintpartition(Word[] wordArray, int left, int right) { intrandomIndex= left + ThreadLocalRandom.current().nextInt(right - left + 1); swap(wordArray, left, randomIndex);
WordpivotWord= wordArray[left]; inti= left, j = right; while (i < j) { while (i < j && wordArray[j].compareTo(pivotWord) >= 0) { j--; } while (i < j && wordArray[i].compareTo(pivotWord) <= 0) { i++; } swap(wordArray, i, j); } swap(wordArray, i, left); return i; }
privatevoidswap(Word[] wordArray, int i, int j) { Wordtmp= wordArray[i]; wordArray[i] = wordArray[j]; wordArray[j] = tmp; } }