All Quicksort does is call this function - Partition!
Quicksort is an algorithm that has a ton of variation to it - Today, we break down this algorithm into its constituent parts, Partitioning and recursion, and try to understand what it is about Quicksort that stays the same between implementations, and what changes. Timestamps For Your Convenience 0:00 Introduction 0:26 Basics of Quicksort 1:39 Introduction to Partioning 2:20 Relationship between Partitioning and Quicksort 2:39 The Quicksort "Driver" 5:01 Partitioning Algorithm #1: The Intuitive One 6:40 Partitioning Algorithm #2: Lomuto's Scheme 8:55 Partitioning Algorithm #3: Hoare's Scheme 11:57 Time Complexity of Partitioning 13:00 Time Complexity of Quicksort & Pivot Choice 15:18 Conclusion Here's the pseudocode used in the video: Main Quicksort Driver proc QuickSort(array, start_index, end_index) if start_index ≥ end_index return array endIf pivot_index ← pick random integer between start_index and end_index new_pivot_index, array ← Partition(array, start_index, end_index, pivot_index) array ← QuickSort(array, start_index, new_pivot_index - 1) array ← QuickSort(array, new_pivot_index + 1, end_index) return array endProc Intuitive Partitioning Algorithm proc Partition_Intuitive(array, start_index, end_index, pivot_index) smaller_array ← create empty array larger_array ← create empty array pivot ← array[pivot_index] for i from start_index to end_index (inclusive) if array[i] ≤ pivot add array[i] to smaller_array else add array[i] to larger_array endIf endFor new_pivot_index ← start_index + length of smaller_array replace array[start_index to new_pivot_index-1] with smaller_array replace array[new_pivot_index] with pivot replace array[new_pivot_index+1 to end_index] with larger_array return new_pivot_index, array endProc Lomuto's Partitioning Scheme proc Partition_Lomuto(array, start_index, end_index, pivot_index): swap array[end_index] with array[pivot_index] pivot ← array[end_index] i ← start_index – 1 (before first element) for j from start_index to end_index-1: if array[j] ≤ pivot: i ← i + 1 swap array[i] and array[j] endIf endFor i ← i + 1 (set pivot location) swap arr[i] and arr[right] new_pivot_index ← i return new_pivot_index, array Hoare's Partitioning Scheme (Modified) proc Partition_Hoare_FixedPivot(array, start_index, end_index, pivot_index) mid ← floor((start_index + end_index) / 2) swap array[pivot_index] with array[start_index] pivot ← arr[start_index] i ← start_index – 1 j ← end_index + 1 while True: do i ← i + 1 while array[i] < pivot do j ← j - 1 while array[j] > pivot if i ≥ j: swap array[start_index] and array[j] return j, array swap arr[i] and arr[j] endProc ----- Want to contribute to the channel? Consider using the "Super Thanks" feature above, or visit my website at https://nerdfirst.net/donate to find alternative ways to donate. Thank you! ----- Disclaimer: Please note that any information is provided on this channel in good faith, but I cannot guarantee 100% accuracy / correctness on all content. Contributors to this channel are not to be held responsible for any possible outcomes from your use of the information.

The Quicksort Sorting Algorithm: Pick A Pivot, Partition, & Recurse

Quickselect Algorithm - Find elements by rank without sorting!

Bubble Sort advanced Algorithm Visualization | Step by Step Python Code Animation

"Clean" Code, Horrible Performance

Hoare Partition Quick Sort | Lecture - 20 | GeeksforGeeks

CS 11 2526s2 - Lec 20 part 2 - More Algorithms: Divide and Conquer, Sorting

Turing Award Winner: Disagreeing with Google, Postgres, Future Problems | Mike Stonebraker

The fastest sorting algorithm

Quicksort: Partitioning an array

CPU Pipelining - The cool way your CPU avoids idle time!

If You Have A Bad Memory, I’ll Help You Fix It In 28 Minutes

Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup

But what are Hamming codes? The origin of error correction

2.8.1 QuickSort Algorithm

ART SCREENSAVER FOR YOUR TV | NO MUSIC | 2Hour | Abstract neutral art

Learn Dynamic Programming with Animations – Full Course for Beginners

Judge Can’t Stop Laughing At Sovereign Citizen’s Courtroom Meltdown!!!

Quicksort Algorithm: A Step-by-Step Visualization

2.8.2 QuickSort Analysis

