quickSort method
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);
}