The partition process

The first thing we need to do is choose the pivot element. There are a few ways in which we can do this. The simplest one is selecting the first value of the array (the leftmost value). However, studies show that this is not a good selection if the array is almost sorted, causing the worst behavior of the algorithm. Another approach is selecting a random value of the array or the middle value.

Now, let's take a look at the partition method:

function partition(array, left, right, compareFn) {  const pivot = array[Math.floor((right + left) / 2)]; // {8}  let i = left; // {9}  let j = right; // {10}  while (i <= j) { // {11}    while (compareFn(array[i], pivot) === Compare.LESS_THAN) { // {12}      i++;    } while (compareFn(array[j], ...

Get Learning JavaScript Data Structures and Algorithms - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.