1. Introduction to Sorting Algorithms
Sorting is foundational to algorithm design. Below are 25 essential Sorting questions with complete implementations in C++, Java, Python, and JavaScript.
2. Core Sorting Implementations
Q1. Merge Sort
cppvoid merge(vector<int>& arr, int l, int m, int r) { vector<int> left(arr.begin() + l, arr.begin() + m + 1); vector<int> right(arr.begin() + m + 1, arr.begin() + r + 1); int i = 0, j = 0, k = l; while (i < left.size() && j < right.size()) { arr[k++] = (left[i] <= right[j]) ? left[i++] : right[j++]; } while (i < left.size()) arr[k++] = left[i++]; while (j < right.size()) arr[k++] = right[j++]; } void mergeSort(vector<int>& arr, int l, int r) { if (l >= r) return; int mid = l + (r - l) / 2; mergeSort(arr, l, mid); mergeSort(arr, mid + 1, r); merge(arr, l, mid, r); }
javapublic void merge(int[] arr, int l, int m, int r) { int[] left = Arrays.copyOfRange(arr, l, m + 1); int[] right = Arrays.copyOfRange(arr, m + 1, r + 1); int i = 0, j = 0, k = l; while (i < left.length && j < right.length) { arr[k++] = (left[i] <= right[j]) ? left[i++] : right[j++]; } while (i < left.length) arr[k++] = left[i++]; while (j < right.length) arr[k++] = right[j++]; } public void mergeSort(int[] arr, int l, int r) { if (l >= r) return; int mid = l + (r - l) / 2; mergeSort(arr, l, mid); mergeSort(arr, mid + 1, r); merge(arr, l, mid, r); }
pythondef mergeSort(arr: list) -> list: if len(arr) <= 1: return arr mid = len(arr) // 2 left = mergeSort(arr[:mid]) right = mergeSort(arr[mid:]) res = [] i = j = 0 while i < len(left) and j < len(right): if left[i] <= right[j]: res.append(left[i]); i += 1 else: res.append(right[j]); j += 1 res.extend(left[i:]) res.extend(right[j:]) return res
javascriptfunction mergeSort(arr) { if (arr.length <= 1) return arr; let mid = Math.floor(arr.length / 2); let left = mergeSort(arr.slice(0, mid)); let right = mergeSort(arr.slice(mid)); let res = []; let i = 0, j = 0; while (i < left.length && j < right.length) { if (left[i] <= right[j]) res.push(left[i++]); else res.push(right[j++]); } return res.concat(left.slice(i)).concat(right.slice(j)); }
Time Complexity: O(n log n) | Space Complexity: O(n)
3. Summary Table
| Algorithm | Best | Average | Worst | Space |
|---|---|---|---|---|
| Merge Sort | O(n log n) | O(n log n) | O(n log n) | O(n) |
Practice all sorting problems on DSAMaster's practice platform.
