function quickSort (arr, l, r) {
var l = l || 0;
var r = r || arr.length - 1;
var i = AdjustArray(arr, l, r);
if (l < i - 1) {
quickSort(arr, l, i - 1);
}
if (r > i + 1) {
quickSort(arr, i + 1, r);
}
}
function AdjustArray (arr, l, r) {
var i = l;
var j = r;
var x = arr[l];
while (i < j) {
while (i < j && arr[j] >= x) {
j--;
}
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] < x) {
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = x;
return i;
}
var arr = [10, 4, 7, 3, 5, 6, 2, 8, 1];
quickSort(arr);
console.log(arr);
console