JSFiddle - React, Tailwind, and code Playground

JavaScript

let arr = [1, 3, 7, 4, 5, 2, 6]

function partition(arr, pivot, left, right) {
	while (left <= right) {
  	while (arr[left] < pivot) {
    	left++;
    }
    while (arr[right] > pivot) {
    	right--;
    }
    
    if (left <= right) {
    	[arr[left], arr[right]] = [arr[right], arr[left]];
      left++;
      right--;
    }
  }
  
  return left;
}

function quicksort(arr, left = 0, right = arr.length - 1) {
	if (left >= right) return;
  let pivot = arr[Math.floor((left + right) / 2)];
  let index = partition(arr, pivot, left, right);
  quicksort(arr, left, index - 1);
  quicksort(arr, index, right);
  return arr;
}

console.log(quicksort(arr));