Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में बबल सॉर्ट क्या है? उदाहरण सहित व्याख्या

बबल सॉर्ट एक सॉर्टिंग एल्गोरिथम है जो लिस्ट को आरोही (या अवरोही) क्रम में सॉर्ट करता है। यह सबसे आसान सॉर्टिंग एल्गोरिथम है लेकिन यह बहुत कुशल नहीं है। इसका उपयोग छोटे इनपुट आकार पर किया जा सकता है लेकिन बड़ी लंबाई की लिस्ट्स या ऐरे के लिए समय कुशल नहीं है। इसकी टाइम कॉम्प्लेक्सिटी O(n²) है। हालांकि, यह एक इन-प्लेस सॉर्टिंग एल्गोरिथम है, जिसका अर्थ है कि यह कोई अतिरिक्त स्थान उपयोग नहीं करता। इस प्रकार, यह स्पेस कॉम्प्लेक्सिटी के संदर्भ में कुशल है। हालांकि, इसका अधिक उपयोग नहीं किया जाता क्योंकि बबल सॉर्ट से बेहतर सॉर्टिंग एल्गोरिथम हैं।

बबल सॉर्ट कैसे काम करता है?

बबल सॉर्ट में, दो फॉर लूप्स का उपयोग किया जाता है। बाहरी फॉर लूप लिस्ट पर इटरेट करता है। आंतरिक फॉर लूप सभी बाहरी लूप इटरेशन्स के लिए लिस्ट पर इटरेट करता है।

बबल सॉर्ट में मुख्य ऑपरेशन दो लगातार एलिमेंट्स की तुलना करना है। यदि पहला एलिमेंट अगले एलिमेंट से बड़ा है, तो दोनों को स्वैप करें, ताकि छोटा एलिमेंट आगे आ जाए और बड़ा एलिमेंट पीछे चला जाए। बाहरी लूप के एक इटरेशन में, लिस्ट का सबसे बड़ा एलिमेंट अंतिम इंडेक्स पर चला जाता है। बाहरी लूप के दूसरे इटरेशन में, लिस्ट का दूसरा सबसे बड़ा एलिमेंट अंतिम से दूसरे इंडेक्स पर चला जाता है और इसी तरह। इसलिए, सभी इटरेशन्स के अंत में हमें सॉर्ट की गई लिस्ट प्राप्त होती है।

हम एक उदाहरण की मदद से बेहतर समझ सकते हैं।

उदाहरण

हमें निम्नलिखित लिस्ट को सॉर्ट करने की आवश्यकता है।

52134

आउटर लूप = 1

52134

5 > 2, इसलिए दोनों को स्वैप करें

25134

5 > 1, इसलिए दोनों को स्वैप करें

21534

5 > 3, इसलिए दोनों को स्वैप करें

21354

5 > 4, इसलिए दोनों को स्वैप करें

21354

(पहले आउटर इटरेशन के बाद सबसे बड़ा एलिमेंट 5 अंतिम इंडेक्स पर पहुंच गया है)

आउटर लूप = 2

21354

2 > 1, इसलिए स्वैप करें

12354

स्वैपिंग की आवश्यकता नहीं

12345

स्वैपिंग की आवश्यकता नहीं

12345

जैसा कि हम देख सकते हैं लिस्ट दूसरे आउटर इटरेशन में ही सॉर्ट हो गई है। लेकिन आउटर लूप 3 और बार इटरेट करेगा बिना किसी स्वैप ऑपरेशन के। इसलिए, उदाहरण में केवल 2 इटरेशन दिखाए गए हैं। कभी-कभी लिस्ट पहले इटरेशन में ही सॉर्ट हो सकती है। कभी-कभी लिस्ट अंतिम इटरेशन में सॉर्ट हो सकती है। इस प्रकार, आउटर लूप हमेशा n बार इटरेट करेगा।

उदाहरण

def bubble_sort(arr):
    for i in range(len(arr)):
        for j in range(len(arr)-1):
            if arr[j] > arr[j+1]:
                temp = arr[j]
                arr[j] = arr[j+1]
                arr[j+1] = temp
    return arr

array = [2, 3, 1, 5, 4]
print(bubble_sort(array))

आउटपुट

[1, 2, 3, 4, 5]
  1. जावास्क्रिप्ट में ऐरे स्प्लिसिंग क्या है? उदाहरण सहित समझाएं। जावास्क्रिप्ट में ऐरे स्प्लिसिंग क्या है? उदाहरण सहित समझाएं।

    परिचय ऐरे स्प्लिसिंग का अर्थ है Array.splice() मेथड का उपयोग करके ऐरे से आइटम्स जोड़ना या हटाना। हटाए गए आइटम्स एक ऐरे के रूप में लौटाए जाते हैं। यह मेथड मूल ऐरे को म्यूटेट करता है। सिंटैक्स array.splice(startIndex, deleteCount, item1, item2, ...) startIndex - परिवर्तन शुरू करने का इंडेक्स delete

  1. - JDBC में पैरामीटराइज़्ड बैच अपडेट क्या है? उदाहरण के साथ समझाएं

    JDBC पैरामीटराइज़्ड बैच अपडेट एक साथ कई INSERT, UPDATE या DELETE स्टेटमेंट्स को पैरामीटर्स के साथ बैच में निष्पादित करने की प्रक्रिया को पैरामीटराइज़्ड बैच अपडेट कहते हैं। यह प्रदर्शन में सुधार करता है और SQL इंजेक्शन से बचाता है। सामान्य बैच अपडेट प्रक्रिया Statement ऑब्जेक्ट बनाएं ऑटो-कमिट बंद क

  1. इमेज एरे क्या है? C++ में उदाहरण सहित समझाएं इमेज एरे क्या है? C++ में उदाहरण सहित समझाएं

    एरे डेटा के संग्रह को संग्रहीत और पुनर्प्राप्त करने का एक सुविधाजनक तरीका है। OpenCV में, हम इस अवधारणा का उपयोग कई इमेज को इमेज एरे में लोड करने और उन्हें एरे के इंडेक्स नंबर का उपयोग करके दिखाने के लिए कर सकते हैं। निम्नलिखित प्रोग्राम एक मैट्रिक्स एरे में कई इमेज लोड करता है और इंडेक्स नंबर द्वार