Merge Sort in DSA – Complete Guide

Merge Sort

πŸ“Œ What is Merge Sort?

Merge Sort ek Divide and Conquer algorithm hai πŸ‘‡

πŸ‘‰ Array ko chhote parts me divide karta hai
πŸ‘‰ Phir unko sort karke merge karta hai


βš™οΈ How Merge Sort Works

Step-by-step:

  1. Array ko 2 halves me divide karo
  2. Har half ko recursively sort karo
  3. Dono sorted halves ko merge karo
  4. Final sorted array milta hai

πŸ“Š Example (Dry Run)

Array:
[38, 27, 43, 3, 9, 82, 10]


Step 1: Divide

[38,27,43,3]     [9,82,10]

Step 2: Divide Again

[38,27] [43,3]   [9,82] [10]

Step 3: Single Elements

[38] [27] [43] [3] [9] [82] [10]

Step 4: Merge (Sorted)

[27,38] [3,43]   [9,82] [10]

Final Merge:

[3,27,38,43] + [9,10,82]
➑️ [3,9,10,27,38,43,82]

πŸ’» Merge Sort in PHP (Code Example)

<?phpfunction mergeSort($arr) {
if (count($arr) <= 1) {
return $arr;
} $mid = intdiv(count($arr), 2); $left = array_slice($arr, 0, $mid);
$right = array_slice($arr, $mid); $left = mergeSort($left);
$right = mergeSort($right); return merge($left, $right);
}function merge($left, $right) {
$result = []; while (count($left) > 0 && count($right) > 0) {
if ($left[0] < $right[0]) {
$result[] = array_shift($left);
} else {
$result[] = array_shift($right);
}
} return array_merge($result, $left, $right);
}// Example
$array = [38, 27, 43, 3, 9, 82, 10];
$sortedArray = mergeSort($array);print_r($sortedArray);?>

⚑ Key Insight

πŸ‘‰ Merge Sort me divide + merge = sorting
πŸ‘‰ Recursion ka heavy use hota hai


⏱️ Time & Space Complexity

CaseTime Complexity
Best CaseO(n log n)
AverageO(n log n)
Worst CaseO(n log n)

Space Complexity:
πŸ‘‰ O(n) (extra memory required)


πŸ‘ Advantages

  • Fast & efficient (O(n log n))
  • Stable sorting algorithm
  • Large datasets ke liye best

πŸ‘Ž Disadvantages

  • Extra memory use karta hai
  • Recursive calls (stack usage)
  • Simple algorithms se complex

🎯 When to Use Merge Sort?

  • Large datasets
  • Stable sorting required ho
  • Linked list sorting
  • External sorting (files, big data)

πŸ”₯ Merge Sort vs Quick Sort

FeatureMerge SortQuick Sort
Time ComplexityO(n log n)O(n log n) avg
Worst CaseO(n log n)O(nΒ²)
SpaceO(n)O(log n)
Stabilityβœ… Yes❌ No

πŸš€ Conclusion

Merge Sort ek powerful aur efficient algorithm hai jo large data aur stable sorting ke liye best choice hai. Ye DSA me ek must-learn concept hai, especially interviews ke liye.

No comments yet! You be the first to comment.

Leave a Reply

Your email address will not be published. Required fields are marked *