const input = [99, 44, 6, 2, 1, 5, 63, 87, 283, 4, 0];
function quickSort(array, start, end) {
// console.log({ array });
if (start < end) {
const partitionIndex = partition(array, start, end);
if (partitionIndex < array.length) {
quickSort(array, start, partitionIndex - 1);
quickSort(array, partitionIndex + 1, end);
}
}
return array;
}
function partition(array, start, end) {
const pivot = array[end];
let partitionIndex = start;
let temp;
for (let i = start; i < end; i++) {
if (array[i] <= pivot) {
temp = array[i];
array[i] = array[partitionIndex];
array[partitionIndex] = temp;
partitionIndex++;
}
}
temp = array[end];
array[end] = array[partitionIndex];
array[partitionIndex] = temp;
// console.log({ array });
return partitionIndex;
}
console.log(">>", quickSort(input, 0, input.length - 1));