Sorting Algorithms Computer Science का ऐसा topic है जो हर GATE Computer Science & IT aspirant को strong करना ही चाहिए। Almost हर साल GATE exam में sorting से direct या indirect question जरूर आता है – कभी time complexity पूछ ली जाती है, कभी stability, कभी किसी specific algorithm का output।
इस article में हम Sorting Algorithms को बिल्कुल basic से लेकर advanced level तक simple Hindi में समझेंगे, ताकि beginners से लेकर GATE 2026 के serious aspirants तक सभी को फायदा हो।
सॉर्टिंग एल्गोरिथम क्या है (What is Sorting Algorithms in Hindi) ?
Sorting का मतलब होता है data को किसी order में arrange करना – जैसे ascending order (छोटे से बड़े) या descending order (बड़े से छोटे)।
मान लो आपके पास numbers की list है:
34, 12, 5, 90, 22
अगर इसे ascending order में sort करें तो बनेगा:
5, 12, 22, 34, 90
इस process को ही हम कहते हैं Sorting Algorithms।
Sorting Algorithms का महत्व (GATE Perspective)
GATE CS में Sorting Algorithms इसलिए महत्वपूर्ण हैं क्योंकि:
- Binary Search केवल sorted data पर ही कार्य करता है
- Databases में indexing और searching sorting पर आधारित होती है
- Operating System में process scheduling और memory allocation
- Competitive programming तथा coding interviews में sorting का व्यापक उपयोग
- Time Complexity और Algorithm Analysis का आधार
इसी कारण GATE CS 2026 के लिए Sorting Algorithms एक core topic है।
Sorting Algorithms Basics
Sorting algorithms को समझने से पहले कुछ important terms जानना जरूरी है।
1. Stable vs Unstable Sorting
- Stable Sorting: अगर दो elements equal हैं, तो sorting के बाद भी उनका relative order same रहता है।
Example: Merge Sort, Insertion Sort - Unstable Sorting: equal elements का order change हो सकता है।
Example: Quick Sort, Heap Sort
2. In-place vs Not In-place
- In-place Algorithm: extra memory बहुत कम या नहीं लेता।
Example: Bubble, Selection, Insertion - Not In-place Algorithm: extra array या memory चाहिए।
Example: Merge Sort
3. Comparison-based vs Non-comparison Sorting
- Comparison-based: elements को compare करके sort करते हैं।
Example: Bubble, Selection, Quick, Merge, Heap - Non-comparison: direct comparison नहीं करते, बल्कि counting या digit position का use करते हैं।
Example: Counting Sort, Radix Sort, Bucket Sort
यह भी पढ़ें: GATE 2026 CS & IT Subject Wise Weightage – Syllabus का सबसे बड़ा Secret (High-Scoring Topics)
Types of Sorting Algorithms
Sorting Algorithms के प्रकार मुख्य रूप से दो श्रेणियों में बाँटे जाते हैं – A) Comparison-Based Sorting और B) Non-Comparison-Based Sorting।
A) Comparison-Based Sorting
Comparison-Based Sorting वे algorithms होते हैं जिनमें elements को आपस में compare करके क्रम में रखा जाता है, जैसे Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort और Heap Sort; इन सभी में decision “कौन बड़ा है, कौन छोटा” जैसी तुलना पर आधारित होता है।
1. Bubble Sort
Bubble Sort Algorithm एक बहुत ही सरल और basic sorting technique है जिसमें array के पास-पास स्थित (adjacent) elements की आपस में तुलना की जाती है। यदि बाएँ तरफ का element दाएँ तरफ वाले element से बड़ा होता है, तो दोनों को आपस में बदल दिया जाता है।
इस प्रक्रिया को बार-बार दोहराया जाता है, जब तक पूरा array सही क्रम में sort न हो जाए। हर pass के बाद सबसे बड़ा element धीरे-धीरे array के अंत में पहुँच जाता है, ठीक उसी तरह जैसे पानी में बुलबुले ऊपर की ओर उठते हैं, इसी कारण इस algorithm को Bubble Sort कहा जाता है।
Example:
Array = 5, 1, 4, 2
Pass 1 → 1, 5, 4, 2 → 1, 4, 5, 2 → 1, 4, 2, 5
Pass 2 → 1, 4, 2, 5 → 1, 2, 4, 5
Complexity:
- Best: O(n)
- Average & Worst: O(n²)
- Stable: Yes
- In-place: Yes
2. Selection Sort
Selection Sort Algorithm एक सरल sorting technique है जिसमें हर चरण (pass) में पूरे unsorted भाग से सबसे छोटे (minimum) element को खोजा जाता है और उसे array के पहले unsorted स्थान पर रख दिया जाता है।
इस प्रकार पहले pass में सबसे छोटा element अपनी सही position पर पहुँच जाता है, दूसरे pass में दूसरा सबसे छोटा element, और यह प्रक्रिया तब तक चलती रहती है जब तक पूरा array sort न हो जाए। इस algorithm में हर बार minimum element को select किया जाता है, इसलिए इसे Selection Sort कहा जाता है।
Example:
29, 10, 14, 37
Step 1: minimum = 10 → swap with 29
10, 29, 14, 37
Step 2: minimum from remaining = 14
10, 14, 29, 37
Complexity:
- Best, Avg, Worst: O(n²)
- Stable: No
- In-place: Yes
3. Insertion Sort
Insertion Sort Algorithm वह sorting technique है जिसमें array को दो भागों में माना जाता है – एक sorted भाग और दूसरा unsorted भाग। शुरुआत में पहला element sorted माना जाता है, फिर unsorted भाग से एक-एक करके element उठाकर उसे sorted भाग में उसकी सही position पर insert किया जाता है।
यह प्रक्रिया बिल्कुल उसी तरह होती है जैसे ताश के पत्तों को हाथ में क्रम से जमाया जाता है। हर नए element को पीछे की ओर shift करते हुए उचित स्थान पर रखा जाता है।
Example:
8, 3, 5, 2
- 8 sorted
- insert 3 → 3, 8
- insert 5 → 3, 5, 8
- insert 2 → 2, 3, 5, 8
Complexity:
- Best: O(n)
- Worst: O(n²)
- Stable: Yes
- In-place: Yes
4. Merge Sort – Divide and Conquer
Merge Sort Algorithm एक शक्तिशाली sorting technique है जो Divide and Conquer सिद्धांत पर आधारित होती है। इसमें दिए गए array को बार-बार दो बराबर भागों में विभाजित किया जाता है, जब तक हर भाग में केवल एक element न रह जाए, क्योंकि एक element अपने आप में sorted होता है। इसके बाद इन छोटे-छोटे sorted भागों को क्रमबद्ध तरीके से आपस में merge करके एक बड़ा sorted array तैयार किया जाता है।
यह merging प्रक्रिया पूरे algorithm का सबसे महत्वपूर्ण भाग होती है, जिसमें दो sorted arrays को मिलाकर एक नया sorted array बनाया जाता है।
Example:
38, 27, 43, 3
Divide → [38,27] [43,3]
Sort → [27,38] [3,43]
Merge → [3,27,38,43]
Complexity:
- Best, Avg, Worst: O(n log n)
- Space: O(n)
- Stable: Yes
5. Quick Sort
Quick Sort Algorithm एक बहुत तेज और widely used sorting technique है जो Divide and Conquer सिद्धांत पर कार्य करती है। इसमें array से एक element को pivot के रूप में चुना जाता है और फिर बाकी elements को इस प्रकार व्यवस्थित किया जाता है कि pivot से छोटे सभी elements बाएँ तरफ और बड़े सभी elements दाएँ तरफ आ जाएँ, इस प्रक्रिया को partitioning कहा जाता है।
इसके बाद बाएँ और दाएँ दोनों हिस्सों पर यही प्रक्रिया recursively दोहराई जाती है, जब तक पूरा array sorted न हो जाए।
Example:
10, 7, 8, 9, 1, 5
Pivot = 5
Left = 1
Right = 10,7,8,9
फिर recursively sort करते हैं।
Complexity:
- Best, Avg: O(n log n)
- Worst: O(n²)
- Stable: No
6. Heap Sort
Heap Sort Algorithm एक प्रभावी sorting technique है जो Binary Heap डेटा स्ट्रक्चर पर आधारित होती है। इसमें सबसे पहले दिए गए array से एक Max Heap बनाया जाता है, जिसमें सबसे बड़ा element हमेशा root पर स्थित होता है। इसके बाद root element को array के अंतिम element से बदल दिया जाता है और heap का size एक कम कर दिया जाता है, फिर heapify प्रक्रिया के द्वारा heap का गुण दोबारा स्थापित किया जाता है। यह प्रक्रिया तब तक दोहराई जाती है जब तक पूरा array sorted न हो जाए।
Steps:
- Build Max Heap
- Largest element root पर आता है
- Root को last element से swap करो
- Heapify again
Complexity:
- All cases: O(n log n)
- Space: O(1)
- Stable: No
B) Non-Comparison-Based Sorting
Non-Comparison-Based Sorting में elements की direct तुलना नहीं की जाती, बल्कि उनके value range या digit position जैसी विशेषताओं का उपयोग करके sorting की जाती है, जैसे Counting Sort, Radix Sort और Bucket Sort; ये algorithms विशेष परिस्थितियों में बहुत तेज कार्य करते हैं, विशेषकर तब जब input का range सीमित हो।
1. Counting Sort (Non-comparison)
Counting Sort Algorithm एक विशेष प्रकार का Non-Comparison Based Sorting Algorithm है जिसमें elements की आपस में तुलना नहीं की जाती, बल्कि प्रत्येक मान की frequency गिनकर sorting की जाती है।
इसमें पहले एक count array बनाया जाता है जो यह बताता है कि कौन-सा element कितनी बार आया है, फिर उसी count की सहायता से एक नया sorted array तैयार किया जाता है। Counting Sort तब बहुत प्रभावी होता है जब input elements का range सीमित हो, जैसे 1 से 100 या 0 से 50 के बीच के मान।
Example:
4, 2, 2, 8, 3, 3, 1
Count frequency और फिर reconstruct array।
Complexity:
- Time: O(n + k)
- Space: O(k)
2. Radix Sort & Bucket Sort
Radix Sort में संख्याओं को उनके digit position के आधार पर sort किया जाता है, जैसे पहले units place, फिर tens place और फिर hundreds place, और हर digit पर आमतौर पर stable sorting technique का उपयोग किया जाता है, जिससे अंत में पूरा array sorted हो जाता है।
दूसरी ओर, Bucket Sort में elements को उनके value range के अनुसार अलग-अलग buckets में बाँट दिया जाता है और फिर प्रत्येक bucket को अलग से sort करके सभी buckets को मिलाकर final sorted array बनाया जाता है। ये दोनों algorithms तब बहुत प्रभावी होते हैं जब input data का distribution और range पहले से ज्ञात हो।
Time & Space Complexity for Sorting Algorithms
| Algorithm | Best | Average | Worst | Stable |
| Bubble | O(n) | O(n²) | O(n²) | Yes |
| Selection | O(n²) | O(n²) | O(n²) | No |
| Insertion | O(n) | O(n²) | O(n²) | Yes |
| Merge | O(nlogn) | O(nlogn) | O(nlogn) | Yes |
| Quick | O(nlogn) | O(nlogn) | O(n²) | No |
| Heap | O(nlogn) | O(nlogn) | O(nlogn) | No |
GATE CS में Sorting Algorithms का Role क्या है ?
GATE में पूछे जाते हैं:
- Best / Worst case complexity
- Stable vs Unstable
- Output of algorithm
- Number of comparisons / swaps
- Which algorithm is suitable for which scenario
हर aspirant को ये points याद रखने चाहिए।
Real Life Applications of Sorting Algorithms
- Online shopping filter
- Database indexing
- File systems
- Operating System scheduling
Practice Tips
- हर algorithm का dry run खुद करो
- Time complexity table daily revise करो
- Previous year GATE questions solve करो
यह भी पढ़ें: GATE Exam Syllabus 2026: CS vs DA किसका Syllabus Tough – जानिए Real Difference
निष्कर्ष (Conclusion)
इस लेख में आपने Sorting Algorithms को मूल अवधारणाओं से लेकर GATE CS 2026 के परीक्षा-स्तर तक विस्तार से समझा है – जैसे Stable और Unstable sorting, In-place और Not In-place algorithms, Time एवं Space Complexity तथा Bubble, Selection, Insertion, Merge, Quick, Heap, Counting, Radix और Bucket Sort जैसी सभी प्रमुख तकनीकों की कार्यविधि।
यदि आप इन algorithms की logic, complexity और उपयोग की परिस्थितियों को स्पष्ट रूप से समझ लेते हैं, तो GATE परीक्षा में आने वाले अधिकांश sorting-based प्रश्न आसानी से हल किए जा सकते हैं।
नियमित अभ्यास, previous year questions का विश्लेषण और complexity सारणियों का निरंतर पुनरावर्तन ही आपको इस विषय में पूर्ण दक्षता दिला सकता है।
यह भी पढ़ें: Pradhan Mantri Fasal Bima Yojana (PMFBY) 2025: किसानों के लिए पूरी जानकारी