code: static void qsort2(int[] keys, int[] values, int lo, int hi) {
              int i = lo;
              int j = hi;
              int pivot = keys[(i+j)/2];
              do {
                  while (keys[i] < pivot) i++;
                  while (pivot < keys[j]) j--;
                  if (i <= j) {
                      int temp1 = keys[i];
                      keys[i] = keys[j];
                      keys[j] = temp1;
                      int temp2 = values[i];
                      values[i] = values[j];
                      values[j] = temp2;
                      i++;
                      j--;
                  }
              } while (i <= j);
              if (lo < j) qsort2(keys, values, lo, j);
              if (i < hi) qsort2(keys, values, i, hi);
          }
docs: Sort (int) arrays of keys and values