Just got into coding and have tried several hours to figure out why I would not get a terminal output. Any guesses?
const unsortedArray = [1, 10, 5, 8, 7, 6, 4, 3, 2, 9];
let initialIndex, finalIndex, i, j;
function quickSort(initialIndex, finalIndex, unsortedArray) {
if(initialIndex >= finalIndex) {
return unsortedArray;
}
let key = initialIndex;
let i = initialIndex + 1;
let j = finalIndex;
while(i <= j) {
while (unsortedArray[i]<=unsortedArray[key] && i<finalIndex) {
i++;
}
while (unsortedArray[j]>=unsortedArray[key] && j>initialIndex) {
j--;
}
if(i > j) {
let temp = unsortedArray[initialIndex];
unsortedArray[initialIndex] = unsortedArray[j];
unsortedArray[j] = unsortedArray[initialIndex];
} else {
let temp = unsortedArray[i];
unsortedArray[i] = unsortedArray[j];
unsortedArray[j] = temp;
}
}
quickSort(initialIndex,j-1,unsortedArray);
quickSort(j+1,finalIndex,unsortedArray);
return unsortedArray
}
function showSortedArray (unsortedArray) {
quickSort(0, unsortedArray.length-1, unsortedArray);
console.log(unsortedArray);
}
showSortedArray(unsortedArray);
I have found other ways (creating two new array and appending left and right), but I want to succeed in this method.