Попытался реализовать qsort и что-то не пошло. Браузер просто виснет. Только начал учить js, может, что-то в синтаксисе не так?
var myArray = [], i, n=10;
for (i=n;i--;){
myArray[i]=Math.floor(Math.random()*100);
}
console.log(myArray);
document.write("Input array:<br>");
for (i=n;i--;){
document.write(myArray[i]);
if (i!=0){document.write(", ");}
}
//to swap items
function swap (array, x, y){
var z = array[x]; array[x] = array[y]; array[y] = z;
return array;
}
//main qsort function
function qsort (arrayToSort, i, j){
var left = i;
var right = j;
var pivot = arrayToSort[Math.floor((i+j)/2)];
while (left<=right){
while (arrayToSort[left]>pivot) {
left++;
}
while (arrayToSort[right]<pivot) {
right++;
}
if(left<=right){
swap(arrayToSort, left, right);
left++;
right--;
}
}
if (i<left){
qsort(arrayToSort, i, left);
}
if (j<right){
qsort(arrayToSort, j, right);
}
return arrayToSort;
}
qsort(myArray,0, myArray.length -1);