पायथन इंसर्शन सॉर्ट गेम कार्ड्स को सॉर्ट करने जैसा काम करता है। सम्मिलन क्रम का उपयोग करने के लिए, आप दो सूचियाँ बनाते हैं:एक क्रमबद्ध और बिना क्रमित सूची। आप क्रमबद्ध सूची में प्रत्येक आइटम की तुलना तब तक करते हैं जब तक आप उस आइटम को सॉर्ट नहीं करते। सम्मिलन क्रम पायथन भाषा में एक सामान्य मानक एल्गोरिथम है।
क्या आपने कभी अपने हाथ में ताश के पत्तों को छांटा है? पायथन सम्मिलन प्रकार की अवधारणा के बारे में सोचने का यह एक तरीका है। जब आपको केवल कुछ तत्वों के साथ एक सूची को क्रमबद्ध करने की आवश्यकता होती है, तो सम्मिलन क्रम में आपकी पीठ होती है।
सम्मिलन प्रकार एक सरणी में प्रत्येक पुनरावृत्ति के बाद एक क्रमबद्ध तत्व को उसके सही स्थान पर रखता है।
इस गाइड में, हम इस बारे में बात करने जा रहे हैं कि सम्मिलन प्रकार क्या हैं और वे कैसे काम करते हैं। हम एक उदाहरण के संदर्भ में, पायथन में इंसर्शन सॉर्ट को लागू करने के तरीके पर चर्चा करेंगे, ताकि आप इस सॉर्टिंग एल्गोरिथम के साथ शुरुआत कर सकें।
पायथन इंसर्शन सॉर्ट क्या है?
एक इंसर्शन सॉर्ट एक सूची को दो सबलिस्ट्स में विभाजित करता है:सॉर्ट किया गया और अनसोल्ड। यह तब क्रमबद्ध सूची में प्रत्येक तत्व की तुलना करता है और ऐसा तब तक करता रहता है जब तक सूची में प्रत्येक आइटम को क्रमबद्ध नहीं किया जाता है।
एक इंसर्शन सॉर्ट एल्गोरिथ्म एक सॉर्ट किए गए आइटम को सॉर्ट किए गए सबलिस्ट में ले जाता है और इसे अनसोल्ड सबलिस्ट से हटा देता है। दोनों उपन्यासकार एक ही सरणी का हिस्सा हैं, लेकिन वे इस बात में अंतर करते हैं कि कोई आइटम सॉर्ट किया गया है या नहीं।
आप सम्मिलन प्रकार के बारे में सोच सकते हैं जैसे आप एक कार्ड गेम में अपने हाथ में कार्ड का एक सेट कैसे सॉर्ट करेंगे।
आप कार्डों की सूची में एक-एक करके आगे बढ़ेंगे और उनकी एक-दूसरे से तुलना करेंगे। सॉर्ट किए गए कार्ड आपके हाथ के बाईं ओर दिखाई देंगे। जब तक आप उन सभी को क्रमित नहीं कर लेते, तब तक बिना क्रमित कार्ड दाईं ओर दिखाई देंगे।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
पायथन इंसर्शन सॉर्ट कैसे काम करता है?
आइए व्यवसाय में उतरें और सम्मिलन सॉर्ट एल्गोरिथ्म का उपयोग करके एक सरणी को सॉर्ट करें। निम्नलिखित क्रमबद्ध सरणी पर विचार करें:
9 | 4 | 3 | 5 |
एक सम्मिलन प्रकार में, पहले तत्व को क्रमबद्ध माना जाता है। दूसरा तत्व अपने स्वयं के चर में संग्रहीत है। हम इस वैरिएबल को current_number . कहेंगे ।
क्रमबद्ध | current_number | <टीडी>||
9 | 4 | 3 | 5 |
हमें current_number . की तुलना करने की आवश्यकता है आइटम के साथ सरणी में पहली स्थिति में। अगर current_number पहले तत्व से बड़ा है, वह उसी स्थान पर रहता है। अन्यथा, current_number को पहले तत्व के सामने ले जाया जाता है।
4, 9 से बड़ा नहीं है, इसलिए ये दो तत्व स्थान बदलते हैं।
4 | 9 | 3 | 5 |
हमारी सूची में पहले दो तत्वों को क्रमबद्ध किया गया है। इसके बाद, हम current_number के मान को सूची में तीसरे आइटम में बदलते हैं और इसकी तुलना बाईं ओर के सभी आइटम से करते हैं।
हमारा करंट_नंबर 3 हो जाता है। हमें तुलना करने की आवश्यकता है:
- क्या 3 9 से बड़ा है? नहीं, इसलिए 9 से पहले 3 डाला जाता है।
- क्या 3 4 से बड़ा है? नहीं, इसलिए 3 को 4 से पहले ले जाया जाता है।
हमारी सूची अब इस तरह दिखती है:
3 | 4 | 9 | 5 |
यह प्रक्रिया तब तक दोहराई जाती है जब तक सूची क्रमबद्ध नहीं हो जाती। हमारी सूची में प्रदर्शन करने के लिए तुलनाओं का केवल एक और सेट है क्योंकि इसमें केवल चार मान हैं। अगले पुनरावृत्ति में, 5 current_number बन जाता है।
- क्या 5, 9 से बड़ा है? नहीं, इसलिए 9 से पहले 5 चालें चलती हैं।
उपयोग किया जाए tकोई और तुलना नहीं की जाती है क्योंकि 5 हमारी क्रमबद्ध सूची में अंतिम संख्या है। इस पुनरावृत्ति के बाद, हमारे सरणी को क्रमबद्ध किया गया है:
3 | 4 | 5 | 9 |
यह इत्ना आसान है! हमारे सम्मिलन क्रम में, हम हमेशा सूची के बाईं ओर क्रमबद्ध मान रखते हैं। क्रमबद्ध न किए गए मान दाईं ओर दिखाई दिए।
सूची में प्रत्येक पुनरावृत्ति के लिए, हमने current_number की तुलना सभी क्रमबद्ध वस्तुओं से की है। यह प्रक्रिया तब तक दोहराई गई जब तक कि हमारी सूची क्रमबद्ध नहीं हो गई।
पायथन में इंसर्शन सॉर्ट कैसे लिखें
यह सब ठीक है और कागज पर सम्मिलन प्रकार के माध्यम से चल रहा है। अब समय आ गया है कि बारीकियों को समझें और पायथन में इंसर्शन सॉर्ट लागू करें।
सॉर्टिंग फंक्शन लिखें
हम एक पायथन फ़ंक्शन लिखकर शुरू करेंगे जो हमारी तरह का प्रदर्शन करता है:
def sortNumbers(toSort): for number in range(1, len(toSort)): current_number = toSort[number] i = number - 1 while i >= 0 and current_number < toSort[i]: toSort[i + 1] = toSort[i] i -= 1 toSort[i + 1] = current_number
आइए देखें कि यह कैसे काम करता है। हमारे सॉर्टनंबर . में फ़ंक्शन हम लूप के लिए एक पायथन बनाते हैं जो सूची में प्रत्येक संख्या के माध्यम से लूप करता है। फिर, हम सूची में पहले तत्व को पायथन वेरिएबल current_number को असाइन करके क्रमबद्ध मान के रूप में सेट करते हैं ।
हम क्रमबद्ध न किए गए पायथन सूची में प्रत्येक आइटम के माध्यम से पुनरावृति करते हैं (प्रत्येक आइटम current_number के बाद)। फिर, हम current_number की तुलना बाईं ओर के प्रत्येक नंबर से करते हैं। ऐसा होने के बाद, हम current_number . का मान सेट करते हैं सूची में इसके बाद के तत्व के बराबर होना।
मुख्य कार्यक्रम लिखें
हमें एक मुख्य प्रोग्राम लिखना है जो हमारे इंसर्शन सॉर्ट को निष्पादित करता है:
numbers = [9, 4, 3, 5] sortNumbers(numbers) print(numbers)
हमारा कोड लौटाता है:
[3, 4, 5, 9]
हमारी सूची को आरोही क्रम में क्रमबद्ध किया गया है! यहां तक पहुंचने के लिए बधाई।
पायथन इंसर्शन सॉर्ट:अवरोही क्रम
सम्मिलन प्रकार संख्याओं को अवरोही क्रम में क्रमबद्ध कर सकते हैं। इसे पूरा करने के लिए, आपको लूप में "से कम" (>) चिह्न को उल्टा करना होगा और इसे चिह्न से बड़ा बनाना होगा:
जबकि मैं>=0 और current_number> क्रमबद्ध करने के लिए[i]:
हमारे उपरोक्त उदाहरण में प्रतिस्थापित कोड की यह पंक्ति, वस्तुओं को सूची में उल्टे क्रम में क्रमबद्ध करेगी।
आपको इंसर्शन सॉर्ट का उपयोग कब करना चाहिए?
सम्मिलन प्रकार का सबसे अच्छा उपयोग तब किया जाता है जब किसी सूची में डेटा या तो लगभग सॉर्ट किया जाता है, या जब आप एक छोटी सूची को सॉर्ट कर रहे होते हैं। अधिक कुशल एल्गोरिदम हैं जिनका उपयोग आप बड़ी सूचियों को सॉर्ट करने के लिए कर सकते हैं। उदाहरण के लिए, मर्ज सॉर्ट या त्वरित सॉर्ट तेज़ होता है।
सम्मिलन प्रकार बबल प्रकार की तुलना में तेज़ होते हैं।
सम्मिलन प्रकार वैसे भी जानने के लिए उपयोगी होते हैं। सम्मिलन क्रम को लागू करने का तरीका जानने से आपको एक अन्य प्रकार का प्रकार मिलता है जिसका आप उपयोग कर सकते हैं।
कुछ अन्य सॉर्टिंग एल्गोरिदम की तुलना में सम्मिलन प्रकार कम जटिल होते हैं। एक बार जब आप एक इंसर्शन सॉर्ट लिखना सीख जाते हैं, तो आप मर्ज सॉर्ट जैसे अधिक जटिल प्रकारों के बारे में जानने के करीब पहुंच जाते हैं।
पायथन इंसर्शन सॉर्ट:जटिलता विश्लेषण
सभी एल्गोरिदम की तरह, सर्वोत्तम, सबसे खराब और औसत जटिलताओं को ध्यान में रखना महत्वपूर्ण है। यह हमें इस बात की जानकारी देगा कि एल्गोरिथम अपना काम करने में कितना प्रभावी है:इस मामले में, सूचियों को छांटना।
सबसे खराब स्थिति और औसत जटिलताएं O(n2) हैं। इसका अर्थ यह है कि जैसे-जैसे आप अपनी सूची में क्रमित करने के लिए और मान जोड़ते जाएंगे, एल्गोरिथम तेजी से धीमी गति से बढ़ेगा।
सबसे अच्छा मामला परिदृश्य ओ (एन) है। ऐसा तब होता है जब हम एल्गोरिथम को क्रमबद्ध सूची में चलाते हैं। एल्गोरिथम जांचता है कि आइटम सॉर्ट किए गए हैं और फिर चलना बंद हो जाता है।
आप इस बारे में अधिक जान सकते हैं कि हम बिग ओ नोटेशन पर हमारी दो-भाग श्रृंखला में एल्गोरिथम जटिलता का प्रतिनिधित्व कैसे करते हैं।
निष्कर्ष
सम्मिलन प्रकार एक कार्ड गेम में आपके हाथ में कार्ड की सूची को सॉर्ट करने जैसा है। आप दो सूचियाँ रखते हैं:क्रमबद्ध वस्तुओं की सूची और क्रमबद्ध करने के लिए वस्तुओं की सूची। फिर, आप क्रमबद्ध न किए गए आइटम की सूची के माध्यम से अपना काम करते हैं और उनकी स्थिति को तब तक फेरबदल करते हैं जब तक कि वे सभी क्रमबद्ध न हो जाएं।
क्या आप अधिक पायथन प्रोग्रामिंग भाषा संसाधनों की तलाश कर रहे हैं? हमारा पूरा देखें कि पायथन गाइड कैसे सीखें। आपको पायथन सीखने के बारे में शीर्ष युक्तियाँ और ऑनलाइन पाठ्यक्रमों, पुस्तकों और अन्य संसाधनों की एक सूची मिलेगी।