展开全部
是 Arrays.sort(a); 吧
给你看32313133353236313431303231363533e4b893e5b19e31333335323964源码
=============/* */ public static void sort(int[] paramArrayOfInt)
/* */ {
/* 96 */ sort1(paramArrayOfInt, 0, paramArrayOfInt.length);
/* */ }
//
/* */ private static void sort1(int[] paramArrayOfInt, int paramInt1, int paramInt2)
/* */ {
/* 558 */ if (paramInt2
/* 559 */ for (i = paramInt1; i
/* 560 */ for (j = i; (j > paramInt1) && (paramArrayOfInt[(j - 1)] > paramArrayOfInt[j]); j--)
/* 561 */ swap(paramArrayOfInt, j, j - 1);
/* 562 */ return;
/* */ }
/* */
/* */
/* 566 */ int i = paramInt1 + (paramInt2 >> 1);
/* 567 */ if (paramInt2 > 7) {
/* 568 */ j = paramInt1;
/* 569 */ k = paramInt1 + paramInt2 - 1;
/* 570 */ if (paramInt2 > 40) {
/* 571 */ m = paramInt2 / 8;
/* 572 */ j = med3(paramArrayOfInt, j, j + m, j + 2 * m);
/* 573 */ i = med3(paramArrayOfInt, i - m, i, i + m);
/* 574 */ k = med3(paramArrayOfInt, k - 2 * m, k - m, k);
/* */ }
/* 576 */ i = med3(paramArrayOfInt, j, i, k);
/* */ }
/* 578 */ int j = paramArrayOfInt[i];
/* */
/* */
/* 581 */ int k = paramInt1;int m = k;int n = paramInt1 + paramInt2 - 1;int i1 = n;
/* */ for (;;) {
/* 583 */ if ((m <= n) && (paramArrayOfInt[m] <= j)) {
/* 584 */ if (paramArrayOfInt[m] == j)
/* 585 */ swap(paramArrayOfInt, k++, m);
/* 586 */ m++;
/* */ } else {
/* 588 */ while ((n >= m) && (paramArrayOfInt[n] >= j)) {
/* 589 */ if (paramArrayOfInt[n] == j)
/* 590 */ swap(paramArrayOfInt, n, i1--);
/* 591 */ n--;
/* */ }
/* 593 */ if (m > n)
/* */ break;
/* 595 */ swap(paramArrayOfInt, m++, n--);
/* */ }
/* */ }
/* */
/* 599 */ int i3 = paramInt1 + paramInt2;
/* 600 */ int i2 = Math.min(k - paramInt1, m - k);vecswap(paramArrayOfInt, paramInt1, m - i2, i2);
/* 601 */ i2 = Math.min(i1 - n, i3 - i1 - 1);vecswap(paramArrayOfInt, m, i3 - i2, i2);
/* */
/* */
/* 604 */ if ((i2 = m - k) > 1)
/* 605 */ sort1(paramArrayOfInt, paramInt1, i2);
/* 606 */ if ((i2 = i1 - n) > 1) {
/* 607 */ sort1(paramArrayOfInt, i3 - i2, i2);
/* */ }
/* */ }
/* */
/* */
/* */ private static void swap(int[] paramArrayOfInt, int paramInt1, int paramInt2)
/* */ {
/* 614 */ int i = paramArrayOfInt[paramInt1];
/* 615 */ paramArrayOfInt[paramInt1] = paramArrayOfInt[paramInt2];
/* 616 */ paramArrayOfInt[paramInt2] = i;
/* */ }