Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 52

Bubble Sort

Bubble sort क्या है

Bubble sort सबसे सरल sorting algorithms में से एक है। यह बार-बार बगल के items तुलना करता है और गलत क्रम में हों तो swap करता है। हर pass के साथ, सबसे बड़ी बची value अंत की ओर तैरती है — bubble उठने जैसा। यह बड़ी lists को धीमा है पर sorting कैसे काम करती है सीखने को बढ़िया।

💡 हर पड़ोसी जोड़ी तुलना कीजिए; बायाँ बड़ा हो तो swap कीजिए। sort होने तक दोहराइए।

विचार

{5, 2, 8, 1, 9} लीजिए। एक pass में, हम 5 और 2 (swap), 5 और 8 (नहीं), 8 और 1 (swap), 8 और 9 (नहीं) तुलना करते हैं। सबसे बड़ा number अंत में चला जाता है। हम छोटे होते आगे वाले हिस्से पर दोहराते हैं जब तक सब sort न हो।

Java program

public class BubbleSort {
    public static void main(String[] args) {
        int[] a = {5, 2, 8, 1, 9};
        int n = a.length;

        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - 1 - i; j++) {
                if (a[j] > a[j + 1]) {
                    int t = a[j];        // swap
                    a[j] = a[j + 1];
                    a[j + 1] = t;
                }
            }
        }
        for (int x : a) System.out.print(x + " ");
    }
}
1 2 5 8 9

बाहरी loop passes चलाता है; अंदरूनी loop पड़ोसी तुलना करके swap करता है। n - 1 - i range छोटी करता है क्योंकि हर pass के बाद अंत पहले से sorted होता है।

Dry run

Dry Run — Bubble Sort {5,2,8,1,9} ka pehla pass
ComparePairSwap?Array ab
a[0],a[1]5,2haan2,5,8,1,9
a[1],a[2]5,8nahi2,5,8,1,9
a[2],a[3]8,1haan2,5,1,8,9
a[3],a[4]8,9nahi2,5,1,8,9
Pehla pass poora — 9 end me. Agle passes ke baad: 1,2,5,8,9
💡 ऐसे समझिए

हर pass बाएँ से दाएँ पड़ोसी तुलना करता है और बड़े को आगे swap करता है, तो सबसे बड़ी value अंत में पहुँचती है। फिर अगला pass बाक़ी sort करता है।

इसे optimise करना

for (int i = 0; i < n - 1; i++) {
    boolean swapped = false;
    for (int j = 0; j < n - 1 - i; j++) {
        if (a[j] > a[j + 1]) {
            int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t;
            swapped = true;
        }
    }
    if (!swapped) break;   // पहले से sorted, जल्दी रुको
}

swapped flag हमें जल्दी रुकने देता है: अगर पूरे pass में कोई swap न हो, array पहले से sorted है, तो जारी रखने का कोई मतलब नहीं।

Time complexity

  • Worst/average: O(n²) — data पर nested loops।
  • Best (optimised, sorted input): O(n) — एक साफ़ pass।
  • Space: O(1) — जगह पर sort, कोई अतिरिक्त array नहीं।

O(n²) के कारण, bubble sort सीखने और छोटी lists को ठीक है, पर बड़े data को धीमा।

आम गलतियाँ

  • गलत inner loop सीमा। n - 1 - i इस्तेमाल कीजिए, वरना sorted अंत से आगे तुलना करते हैं।
  • ख़राब swap। सही swap को temp variable इस्तेमाल कीजिए।
  • Ascending को < से तुलना। बड़ी values दाएँ धकेलने को > इस्तेमाल कीजिए।
  • बड़े data को इस्तेमाल करना। तेज़ sorts या Arrays.sort बेहतर।

सारांश

  • Bubble sort list sort होने तक बगल के items swap करता है।
  • हर pass सबसे बड़ी बची value अंत में धकेलता है।
  • Nested loops इस्तेमाल कीजिए, inner range n - 1 - i।
  • Swapped flag sorted data पर जल्दी रुकने देता है।
  • यह O(n²) है — सीखने को बढ़िया, बड़ी lists को धीमा।

आगे, sorted data पर तेज़ खोज आज़माइए binary search से, या दोहराइए Java arrays।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Bubble sort क्या है?
Bubble sort एक सरल sorting algorithm है जो बार-बार list में से गुज़रता है, हर बगल की जोड़ी तुलना करता है, और गलत क्रम में हों तो swap करता है। हर पूरे pass के बाद, सबसे बड़ी बची value अंत में "bubble" हो जाती है।
Bubble sort कैसे काम करता है?
यह बाएँ से दाएँ पड़ोसियों की तुलना करता है और बायाँ बड़ा हो तो swap करता है। एक pass सबसे बड़ा number अंत में धकेलता है। बाक़ी पर passes दोहराना पूरा array sort कर देता है।
Bubble sort की time complexity क्या है?
Bubble sort औसत और worst case में O(n²) है, क्योंकि यह data पर nested loops इस्तेमाल करता है। एक optimisation से यह पहले-से-sorted data पर O(n) हो सकता है। यह सरल पर बड़ी lists को धीमा है।
Bubble sort कैसे optimise हो सकता है?
एक flag जोड़िए जो track करे pass में कोई swap हुआ या नहीं। अगर पूरे pass में कोई swap न हो, array पहले से sorted है और आप जल्दी रुक सकते हैं, अनावश्यक passes बचाकर।
Bubble sort कब इस्तेमाल करूँ?
मुख्यतः सीखने को, क्योंकि यह साफ़ दिखाता है sorting और swapping कैसे काम करते हैं। बड़े data वाले असली programs को merge sort या built-in Arrays.sort जैसे तेज़ algorithms बेहतर हैं।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicBinary Search आपकी प्रगति: 52 / 61 (85%) · Lesson 53 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें