Отличный пост!
Вот небольшое предложение. Я думаю, что нет необходимости во втором случае в вашей функции quickSort
. В основном все, что не list[i] < pivot
, должно быть нашим вторым случаем, то есть нет необходимости в операторе switch
, мы можем реализовать его с помощью простого if/else:
const quickSort = arr => { if (arr.length < 2) { return arr; } const pivot = arr[0]; const left = []; const right = []; for(let i = 1; i < arr.length; i++) { if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return [...quickSort(left), pivot, ...quickSort(right)]; }; quickSort( ['q','a','z','w','s','x','e','d','c','r']); // ["a", "c", "d", "e", "q", "r", "s", "w", "x", "z"]