@@ -56,21 +56,16 @@ private static void qsort(byte[] a, int lo, int hi) {
5656 private static int partition (byte [] a , int left , int right ) {
5757
5858 int lo = left ;
59- int hi = right + 1 ;
60- int pivot = a [left ];
59+ int hi = right ;
60+ byte pivot = a [left ];
6161
6262 while (lo < hi ) {
6363
64- while (a [--hi ] > pivot );
65-
66-
67- while (a [lo ] <= pivot && lo < hi ) {
68- lo ++;
69- }
64+ while (a [hi ] > pivot ) --hi ;
65+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
7066
7167 swap (a , lo , hi );
7268 }
73-
7469 swap (a , left , lo );
7570
7671 return lo ;
@@ -112,21 +107,16 @@ private static void qsort(char[] a, int lo, int hi) {
112107 private static int partition (char [] a , int left , int right ) {
113108
114109 int lo = left ;
115- int hi = right + 1 ;
116- int pivot = a [left ];
110+ int hi = right ;
111+ char pivot = a [left ];
117112
118113 while (lo < hi ) {
119114
120- while (a [--hi ] > pivot );
121-
122-
123- while (a [lo ] <= pivot && lo < hi ) {
124- lo ++;
125- }
115+ while (a [hi ] > pivot ) --hi ;
116+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
126117
127118 swap (a , lo , hi );
128119 }
129-
130120 swap (a , left , lo );
131121
132122 return lo ;
@@ -169,22 +159,20 @@ private static void qsort(short[] a, int lo, int hi) {
169159 private static int partition (short [] a , int left , int right ) {
170160
171161 int lo = left ;
172- int hi = right + 1 ;
173- int pivot = a [left ];
162+ int hi = right ;
163+ short pivot = a [left ];
174164
175165 while (lo < hi ) {
176166
177- while (a [--hi ] > pivot );
178- while (a [lo ] <= pivot && lo < hi ) {
179- lo ++;
180- }
167+ while (a [hi ] > pivot ) --hi ;
168+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
181169
182170 swap (a , lo , hi );
183171 }
184-
185172 swap (a , left , lo );
186173
187174 return lo ;
175+
188176 }
189177
190178 private static void swap (short [] a , int i , int j ) {
@@ -255,19 +243,16 @@ private static void qsort(int[] a, int lo, int hi) {
255243 private static int partition (int [] a , int left , int right ) {
256244
257245 int lo = left ;
258- int hi = right + 1 ;
246+ int hi = right ;
259247 int pivot = a [left ];
260248
261249 while (lo < hi ) {
262250
263- while (a [--hi ] > pivot );
264- while (a [lo ] <= pivot && lo < hi ) {
265- lo ++;
266- }
251+ while (a [hi ] > pivot ) --hi ;
252+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
267253
268254 swap (a , lo , hi );
269255 }
270-
271256 swap (a , left , lo );
272257
273258 return lo ;
@@ -311,21 +296,16 @@ private static void qsort(long[] a, int lo, int hi) {
311296 private static int partition (long [] a , int left , int right ) {
312297
313298 int lo = left ;
314- int hi = right + 1 ;
299+ int hi = right ;
315300 long pivot = a [left ];
316301
317302 while (lo < hi ) {
318303
319- while (a [--hi ] > pivot );
320-
321-
322- while (a [lo ] <= pivot && lo < hi ) {
323- lo ++;
324- }
304+ while (a [hi ] > pivot ) --hi ;
305+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
325306
326307 swap (a , lo , hi );
327308 }
328-
329309 swap (a , left , lo );
330310
331311 return lo ;
@@ -368,21 +348,16 @@ private static void qsort(float[] a, int lo, int hi) {
368348 private static int partition (float [] a , int left , int right ) {
369349
370350 int lo = left ;
371- int hi = right + 1 ;
351+ int hi = right ;
372352 float pivot = a [left ];
373353
374354 while (lo < hi ) {
375355
376- while (a [--hi ] > pivot );
377-
378-
379- while (a [lo ] <= pivot && lo < hi ) {
380- lo ++;
381- }
356+ while (a [hi ] > pivot ) --hi ;
357+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
382358
383359 swap (a , lo , hi );
384360 }
385-
386361 swap (a , left , lo );
387362
388363 return lo ;
@@ -426,21 +401,16 @@ private static void qsort(double[] a, int lo, int hi) {
426401 private static int partition (double [] a , int left , int right ) {
427402
428403 int lo = left ;
429- int hi = right + 1 ;
404+ int hi = right ;
430405 double pivot = a [left ];
431406
432407 while (lo < hi ) {
433408
434- while (a [--hi ] > pivot );
435-
436-
437- while (a [lo ] <= pivot && lo < hi ) {
438- lo ++;
439- }
409+ while (a [hi ] > pivot ) --hi ;
410+ while (a [lo ] <= pivot && lo < hi ) ++lo ;
440411
441412 swap (a , lo , hi );
442413 }
443-
444414 swap (a , left , lo );
445415
446416 return lo ;
@@ -497,15 +467,13 @@ private static void qsort(Object[] a, int lo, int hi) {
497467 private static int partition (Object [] a , int left , int right ) {
498468
499469 int lo = left ;
500- int hi = right + 1 ;
470+ int hi = right ;
501471 Comparable pivot = ((Comparable ) a [left ]);
502472
503473 while (lo < hi ) {
504474
505- while (pivot .compareTo (a [--hi ]) < 0 );
506- while (pivot .compareTo (a [lo ]) >= 0 && lo < hi ) {
507- lo ++;
508- }
475+ while (pivot .compareTo (a [hi ]) < 0 ) --hi ;
476+ while (pivot .compareTo (a [lo ]) >= 0 && lo < hi ) ++lo ;
509477
510478 swap (a , lo , hi );
511479 }
@@ -535,15 +503,13 @@ private static void qsort(Object[] a, int lo, int hi, Comparator c) {
535503 private static int partition (Object [] a , int left , int right , Comparator c ) {
536504
537505 int lo = left ;
538- int hi = right + 1 ;
506+ int hi = right ;
539507 Object pivot = a [left ];
540508
541509 while (lo < hi ) {
542510
543- while (c .compare (pivot , a [--hi ]) < 0 );
544- while (c .compare (a [lo ], pivot ) <= 0 && lo < hi ) {
545- lo ++;
546- }
511+ while (c .compare (pivot , a [hi ]) < 0 ) --hi ;
512+ while (c .compare (a [lo ], pivot ) <= 0 && lo < hi ) ++lo ;
547513
548514 swap (a , lo , hi );
549515 }
0 commit comments