Episode 7 — DSA with JavaScript / 7.9 — Sorting Algorithms
7.9 — Exercise Questions: Sorting
E1. Implement Selection Sort
Solution (JS)
function selectionSort(arr){for(let i=0;i<arr.length-1;i++){let m=i;for(let j=i+1;j<arr.length;j++)if(arr[j]<arr[m])m=j;if(m!==i)[arr[i],arr[m]]=[arr[m],arr[i]];}return arr;}
E2. Implement Insertion Sort
Solution (JS)
function insertionSort(arr){for(let i=1;i<arr.length;i++){const k=arr[i];let j=i-1;while(j>=0&&arr[j]>k){arr[j+1]=arr[j];j--;}arr[j+1]=k;}return arr;}
E3. Implement Merge Sort
Solution (JS)
function mergeSort(arr){if(arr.length<=1)return arr;const m=Math.floor(arr.length/2);return merge(mergeSort(arr.slice(0,m)),mergeSort(arr.slice(m)));}
function merge(a,b){const r=[];let i=0,j=0;while(i<a.length&&j<b.length)r.push(a[i]<=b[j]?a[i++]:b[j++]);return r.concat(a.slice(i)).concat(b.slice(j));}
E4. Implement Quick Sort
Solution (JS)
function quickSort(arr,lo=0,hi=arr.length-1){if(lo>=hi)return arr;const p=arr[hi];let idx=lo;for(let i=lo;i<hi;i++)if(arr[i]<p){[arr[i],arr[idx]]=[arr[idx],arr[i]];idx++;}[arr[idx],arr[hi]]=[arr[hi],arr[idx]];quickSort(arr,lo,idx-1);quickSort(arr,idx+1,hi);return arr;}
E5. Implement Cyclic Sort
Solution (JS)
function cyclicSort(arr){let i=0;while(i<arr.length){const c=arr[i]-1;if(arr[i]!==arr[c])[arr[i],arr[c]]=[arr[c],arr[i]];else i++;}return arr;}
E6. Find Missing Number (Cyclic Sort)
E7. Find All Duplicates (Cyclic Sort)
E8. Sort Colors (Dutch National Flag)
E9. Kth Largest Element (QuickSelect)
E10. Count Inversions (Merge Sort)
E11. Sort Characters by Frequency
E12. Largest Number from Array
E13. Meeting Rooms (Interval Sort)
Additional exercise bank
EX-014
- Problem: Sorting exercise #14.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-015
- Problem: Sorting exercise #15.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-016
- Problem: Sorting exercise #16.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-017
- Problem: Sorting exercise #17.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-018
- Problem: Sorting exercise #18.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-019
- Problem: Sorting exercise #19.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-020
- Problem: Sorting exercise #20.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-021
- Problem: Sorting exercise #21.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-022
- Problem: Sorting exercise #22.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-023
- Problem: Sorting exercise #23.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-024
- Problem: Sorting exercise #24.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-025
- Problem: Sorting exercise #25.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-026
- Problem: Sorting exercise #26.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-027
- Problem: Sorting exercise #27.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-028
- Problem: Sorting exercise #28.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-029
- Problem: Sorting exercise #29.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-030
- Problem: Sorting exercise #30.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-031
- Problem: Sorting exercise #31.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-032
- Problem: Sorting exercise #32.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-033
- Problem: Sorting exercise #33.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-034
- Problem: Sorting exercise #34.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-035
- Problem: Sorting exercise #35.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-036
- Problem: Sorting exercise #36.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-037
- Problem: Sorting exercise #37.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-038
- Problem: Sorting exercise #38.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-039
- Problem: Sorting exercise #39.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-040
- Problem: Sorting exercise #40.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-041
- Problem: Sorting exercise #41.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-042
- Problem: Sorting exercise #42.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-043
- Problem: Sorting exercise #43.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-044
- Problem: Sorting exercise #44.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-045
- Problem: Sorting exercise #45.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-046
- Problem: Sorting exercise #46.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-047
- Problem: Sorting exercise #47.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-048
- Problem: Sorting exercise #48.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-049
- Problem: Sorting exercise #49.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-050
- Problem: Sorting exercise #50.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-051
- Problem: Sorting exercise #51.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-052
- Problem: Sorting exercise #52.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-053
- Problem: Sorting exercise #53.
- Difficulty: Easy
- Skills: Sorting algorithms, comparisons, optimizations.
EX-054
- Problem: Sorting exercise #54.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-055
- Problem: Sorting exercise #55.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-056
- Problem: Sorting exercise #56.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-057
- Problem: Sorting exercise #57.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-058
- Problem: Sorting exercise #58.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-059
- Problem: Sorting exercise #59.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-060
- Problem: Sorting exercise #60.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-061
- Problem: Sorting exercise #61.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-062
- Problem: Sorting exercise #62.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-063
- Problem: Sorting exercise #63.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-064
- Problem: Sorting exercise #64.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-065
- Problem: Sorting exercise #65.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-066
- Problem: Sorting exercise #66.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-067
- Problem: Sorting exercise #67.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-068
- Problem: Sorting exercise #68.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-069
- Problem: Sorting exercise #69.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-070
- Problem: Sorting exercise #70.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-071
- Problem: Sorting exercise #71.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-072
- Problem: Sorting exercise #72.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-073
- Problem: Sorting exercise #73.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-074
- Problem: Sorting exercise #74.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-075
- Problem: Sorting exercise #75.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-076
- Problem: Sorting exercise #76.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-077
- Problem: Sorting exercise #77.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-078
- Problem: Sorting exercise #78.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-079
- Problem: Sorting exercise #79.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-080
- Problem: Sorting exercise #80.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-081
- Problem: Sorting exercise #81.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-082
- Problem: Sorting exercise #82.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-083
- Problem: Sorting exercise #83.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-084
- Problem: Sorting exercise #84.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-085
- Problem: Sorting exercise #85.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-086
- Problem: Sorting exercise #86.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-087
- Problem: Sorting exercise #87.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-088
- Problem: Sorting exercise #88.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-089
- Problem: Sorting exercise #89.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-090
- Problem: Sorting exercise #90.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-091
- Problem: Sorting exercise #91.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-092
- Problem: Sorting exercise #92.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-093
- Problem: Sorting exercise #93.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-094
- Problem: Sorting exercise #94.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-095
- Problem: Sorting exercise #95.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-096
- Problem: Sorting exercise #96.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-097
- Problem: Sorting exercise #97.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-098
- Problem: Sorting exercise #98.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-099
- Problem: Sorting exercise #99.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-100
- Problem: Sorting exercise #100.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-101
- Problem: Sorting exercise #101.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-102
- Problem: Sorting exercise #102.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-103
- Problem: Sorting exercise #103.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-104
- Problem: Sorting exercise #104.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-105
- Problem: Sorting exercise #105.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-106
- Problem: Sorting exercise #106.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-107
- Problem: Sorting exercise #107.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-108
- Problem: Sorting exercise #108.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-109
- Problem: Sorting exercise #109.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-110
- Problem: Sorting exercise #110.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-111
- Problem: Sorting exercise #111.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-112
- Problem: Sorting exercise #112.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-113
- Problem: Sorting exercise #113.
- Difficulty: Medium
- Skills: Sorting algorithms, comparisons, optimizations.
EX-114
- Problem: Sorting exercise #114.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-115
- Problem: Sorting exercise #115.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-116
- Problem: Sorting exercise #116.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-117
- Problem: Sorting exercise #117.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-118
- Problem: Sorting exercise #118.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-119
- Problem: Sorting exercise #119.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-120
- Problem: Sorting exercise #120.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-121
- Problem: Sorting exercise #121.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-122
- Problem: Sorting exercise #122.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-123
- Problem: Sorting exercise #123.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-124
- Problem: Sorting exercise #124.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-125
- Problem: Sorting exercise #125.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-126
- Problem: Sorting exercise #126.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-127
- Problem: Sorting exercise #127.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-128
- Problem: Sorting exercise #128.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-129
- Problem: Sorting exercise #129.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-130
- Problem: Sorting exercise #130.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-131
- Problem: Sorting exercise #131.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-132
- Problem: Sorting exercise #132.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-133
- Problem: Sorting exercise #133.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-134
- Problem: Sorting exercise #134.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-135
- Problem: Sorting exercise #135.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-136
- Problem: Sorting exercise #136.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-137
- Problem: Sorting exercise #137.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-138
- Problem: Sorting exercise #138.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-139
- Problem: Sorting exercise #139.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-140
- Problem: Sorting exercise #140.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-141
- Problem: Sorting exercise #141.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-142
- Problem: Sorting exercise #142.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-143
- Problem: Sorting exercise #143.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-144
- Problem: Sorting exercise #144.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-145
- Problem: Sorting exercise #145.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-146
- Problem: Sorting exercise #146.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-147
- Problem: Sorting exercise #147.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-148
- Problem: Sorting exercise #148.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-149
- Problem: Sorting exercise #149.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-150
- Problem: Sorting exercise #150.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-151
- Problem: Sorting exercise #151.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-152
- Problem: Sorting exercise #152.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-153
- Problem: Sorting exercise #153.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-154
- Problem: Sorting exercise #154.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-155
- Problem: Sorting exercise #155.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-156
- Problem: Sorting exercise #156.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-157
- Problem: Sorting exercise #157.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-158
- Problem: Sorting exercise #158.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-159
- Problem: Sorting exercise #159.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-160
- Problem: Sorting exercise #160.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-161
- Problem: Sorting exercise #161.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-162
- Problem: Sorting exercise #162.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-163
- Problem: Sorting exercise #163.
- Difficulty: Hard
- Skills: Sorting algorithms, comparisons, optimizations.
EX-164
- Problem: Implement bottom-up (iterative) merge sort.
- Difficulty: Hard
- Skills: Merge sort without recursion, iterative doubling of merge size.
- Implementation: Both JS and C++.
- Complexity: O(n log n) time, O(n) space.
EX-165
- Problem: Implement 3-way quicksort (Dutch National Flag partition).
- Difficulty: Hard
- Skills: Three-way partition for arrays with many duplicates.
- Implementation: Both JS and C++.
- Complexity: O(n log n) average, O(n) for many duplicates.
EX-166
- Problem: Sort an array of strings by length, then alphabetically.
- Difficulty: Medium
- Skills: Custom comparators, stable sort behavior.
- Implementation: Both JS and C++.
EX-167
- Problem: Implement counting sort for an array of integers.
- Difficulty: Medium
- Skills: Non-comparison sort, frequency counting.
- Implementation: Both JS and C++.
- Complexity: O(n + k) where k is the range.
EX-168
- Problem: Implement radix sort for positive integers.
- Difficulty: Hard
- Skills: Digit-by-digit sorting using counting sort as subroutine.
- Implementation: Both JS and C++.
- Complexity: O(d × (n + k)) where d is number of digits.
EX-169
- Problem: Sort a nearly sorted (k-sorted) array efficiently.
- Difficulty: Medium
- Skills: Min-heap of size k+1, insertion sort for small k.
- Implementation: Both JS and C++.
- Complexity: O(n log k) with heap.
EX-170
- Problem: Find the minimum number of swaps to sort an array.
- Difficulty: Hard
- Skills: Graph cycle detection on index-value mapping.
- Implementation: Both JS and C++.
- Complexity: O(n) time.
EX-171
- Problem: Sort an array by parity (even before odd).
- Difficulty: Easy
- Skills: Two-pointer partitioning.
- Implementation: Both JS and C++.
- Complexity: O(n) time, O(1) space.
EX-172
- Problem: Implement pancake sorting.
- Difficulty: Hard
- Skills: Reverse prefix operations, find max and flip.
- Implementation: Both JS and C++.
EX-173
- Problem: Wiggle sort — nums[0] < nums[1] > nums[2] < nums[3]...
- Difficulty: Hard
- Skills: Sort + interleave or single-pass with swaps.
- Implementation: Both JS and C++.