Fix the Broken QuickSort
MediumChallenge 1 of 20
Fix the Broken QuickSort
MediumThis implementation of QuickSort has a critical bug causing a stack overflow. Find and fix the issue to make it work correctly.
Challenge 1 of 20
50 XP
Community Solutions
AlgorithmsRecursionSorting
Exit ChallengeTest Cases
0/4 passingTest Case #1
Input: [5, 3, 8, 4, 2]
Expected: [2, 3, 4, 5, 8]
Run tests to see results
Test Case #2
Input: [1, 1, 1, 1]
Expected: [1, 1, 1, 1]
Run tests to see results
Test Case #3
Input: []
Expected: []
Run tests to see results
Test Case #4
Input: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Expected: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Run tests to see results
solution.js
1
<span class="token keyword">function</span> quickSort(arr) {
<span class="token keyword">if</span> (arr.length <= <span <span class="token keyword">class</span>="token number">1</span>) {
<span class="token keyword">return</span> arr;
}
<span class="token keyword">const</span> pivot = arr[<span <span class="token keyword">class</span>="token number">0</span>];
<span class="token keyword">const</span> left = [];
<span class="token keyword">const</span> right = [];
<span class="token keyword">for</span> (<span class="token keyword">let</span> i = <span <span class="token keyword">class</span>="token number">1</span>; i < arr.length; i++) {
<span class="token keyword">if</span> (arr[i] < pivot) {
left.push(arr[i]);
} <span class="token keyword">else</span> <span class="token keyword">if</span> (arr[i] >= pivot) {
right.push(arr[i]);
}
}
<span class="token keyword">return</span> quickSort(left).concat([pivot], quickSort(right));
}Console
Run your code to see output here