Welcome to the practice-based lesson dedicated to Simple Sorting Algorithms. Sorting is one of the most investigated classes of algorithms in computer science. Understanding different methods of sorting becomes more crucial as data size increases. In this lesson, we are going to revisit basic sorting algorithms: Bubble
, Selection
, and Insertion
sorts. These are not only excellent exercises for those new to coding, but they also lay the groundwork for more complex sorting algorithms like QuickSort
.
Before we dive into the basics, let's peek into more complex territory by examining QuickSort, a popular divide-and-conquer sorting algorithm. The idea behind it is to pick a pivot
element from the array and partition the other elements into two arrays according to whether they are less than or greater than the pivot. The pivot is then placed in its correct sorted position between the two subarrays. This process is recursively applied to each of the two arrays around the pivot, leading to a sorted array.
JavaScript1function quickSort(arr) { 2 if (arr.length <= 1) return arr; 3 4 const pivot = arr[Math.floor(arr.length / 2)]; 5 const left = arr.filter(el => el < pivot); 6 const right = arr.filter(el => el > pivot); 7 8 return [...quickSort(left), pivot, ...quickSort(right)]; 9}
This example demonstrates the QuickSort algorithm by selecting a pivot, dividing the array into elements smaller and larger than the pivot, and then recursively sorting each of those subarrays.
In addition to QuickSort
, we will reverse gears and return to the simple sorting algorithms: Bubble Sort
, Selection Sort
, and Insertion Sort
. These foundational algorithms will not only reinforce your understanding of the sorting principle, but they are also often used as a stepping stone to understanding more complex algorithms. Happy learning, and let's sort it out!