私の方法、パーティション、クイックソートの場合、実行しても問題ありません。ただし、プロジェクトの送信ページにアップロードするたびに、テストはこのコードの設計に対して否定的な結果を返します。のような
static long partition(DataArray array, long l, long r, Record pivot)
throws Exception {
do { // Move bounds inward until they meet
while (array.get(++l).compareTo(pivot) < 0)
;
この行、私は得る.. 3つのエラー...
エラー [Checkstyle]: -2 このステートメントは単なる ';' です したがって、何もしません。「;」を追加した可能性があります 不適切な場所 (if または for ループの後など)。コードが欠落しているか、余分な「;」を削除しているかを確認してください。
エラー [PMD]: -1 (制限を超えました) while ループの本体のコードを常に中かっこで囲むことをお勧めします。エラーの可能性を減らすのに役立ちます。
エラー [PMD]: 0 (制限を超えました) この while ループの本体は空です。while の後に誤ってセミコロン (;) を付けないように注意してください。ループの本体で何もする必要がない場合は、おそらくループ全体を省略できます。
while ((r != 0) && ((array.get(--r).compareTo(pivot) > 0)))
;
ここに別の3つのエラーがあります
エラー [Checkstyle]: -2 このステートメントは単なる ';' です したがって、何もしません。「;」を追加した可能性があります 不適切な場所 (if または for ループの後など)。コードが欠落しているか、余分な「;」を削除しているかを確認してください。
エラー [PMD]: 0 (制限を超えました) while ループの本体のコードを常に中かっこで囲むことをお勧めします。エラーの可能性を減らすのに役立ちます。
エラー [PMD]: 0 (制限を超えました) この while ループの本体は空です。while の後に誤ってセミコロン (;) を付けないように注意してください。ループの本体で何もする必要がない場合は、おそらくループ全体を省略できます。
swap(array, l, r); // Swap out-of-place values
}
while (l < r); // Stop when they cross
swap(array, l, r); // Reverse last, wasted swap
return l; // Return first position in right partition
}
このテストサーバーは有線であることを知っているので、この種の理由からポイントを獲得します。同じことを実行するこのコードを書き直すにはどうすればよいですか?