quickSort method

void quickSort(
  1. List<int> map,
  2. int left,
  3. int right
)

Implementation

void quickSort(List<int> map, int left, int right) {
  do {
    var i = left;
    var j = right;
    final x = map[i + ((j - i) >> 1)];
    do {
      while (i < map.length && compareKeys(x, map[i]) > 0) {
        i++;
      }
      while (j >= 0 && compareKeys(x, map[j]) < 0) {
        j--;
      }
      if (i > j) break;
      if (i < j) {
        final temp = map[i];
        map[i] = map[j];
        map[j] = temp;
      }
      i++;
      j--;
    } while (i <= j);
    if (j - left <= right - i) {
      if (left < j) quickSort(map, left, j);
      left = i;
    } else {
      if (i < right) quickSort(map, i, right);
      right = j;
    }
  } while (left < right);
}