इंसर्शन सॉर्ट एल्गोरिथम का परिचय

इंसर्शन सॉर्ट एल्गोरिथम का परिचय

इंसर्शन सॉर्ट एक ऐसी तकनीक है जो एक सॉर्ट की गई सबलिस्ट का उपयोग करके काम करती है और पूरी सूची को सॉर्ट किए जाने तक अनसोल्ड लिस्ट से लगातार इसमें एक वैल्यू जोड़ती रहती है।





एल्गोरिथ्म पहली सूची आइटम के साथ क्रमबद्ध सबलिस्ट के रूप में शुरू होता है। यह फिर अगले नंबर की तुलना पहले से करता है। यदि यह बड़ा है, तो इसे पहले इंडेक्स में डाला जाता है। अन्यथा, यह इसके index.





फिर तीसरे मान की तुलना अन्य दो से की जाती है, और फिर सही इंडेक्स में डाला जाता है। यह प्रक्रिया तब तक चलती है जब तक कि पूरी सूची को क्रमबद्ध नहीं कर लिया जाता।





इंसर्शन सॉर्ट पर एक नजदीकी नजर

हो सकता है कि ऊपर दिए गए विवरण से आपको कोई मतलब न हो। एक उदाहरण से आपको बेहतर ढंग से समझने में मदद मिलेगी।

मान लीजिए आपके पास एक सूची है: [३९, ६, २, ५१, ३०, ४२, ७]।



एल्गोरिथम 39 को सॉर्ट किए गए सबलिस्ट के पहले मान के रूप में पहचानता है। इसके बाद मूल्यांकन दूसरे स्थान पर जाता है।

संबंधित: गतिशील प्रोग्रामिंग: उदाहरण, सामान्य समस्याएं और समाधान





६ की तुलना ३९ से की जाती है। चूँकि ६, ३९ से कम है, ६ को पहले स्थान पर और ३९ को दूसरे स्थान पर रखा गया है। नया सूची आदेश अब पहले पास के बाद है:

[६, ३९, २, ५१, ३०, ४२, ७]





मूल्यांकन अब तीसरे स्थान पर आ गया है। 2 की तुलना अंतिम दो संख्याओं से की जाती है और फिर सही स्थिति में डाला जाता है। नया सूची क्रम अब दूसरे पास के बाद है:

[२, ६, ३९, ५१, ३०, ४२, ७]

तीसरे पास के लिए, सूची क्रम है:

[२, ६, ३९, ५१, ३०, ४२, ७]

प्रक्रिया तब तक दोहराई जाती है जब तक कि पूरी सूची क्रमबद्ध न हो जाए।

नीचे दिए गए आरेख को देखें जो इन कार्यों को सारांशित करता है:

एल्गोरिथम विश्लेषण

सम्मिलन सॉर्ट की समय जटिलता O(n .) है2), ठीक वैसा बबल शॅाट . सबसे खराब स्थिति में तुलनाओं की संख्या 1 से (n-1) तक के सभी पूर्णांकों का योग है, जो द्विघात योग देता है।

कोड कार्यान्वयन

नीचे दिए गए पायथन और जावा कोड से पता चलता है कि आप इंसर्शन सॉर्ट विधि को कैसे लागू कर सकते हैं।

अजगर:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

जावा:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

स्यूडोकोड के साथ बेहतर कोडिंग

उपरोक्त कोड उदाहरण बिना किसी छद्म कोड के दिए गए थे जिन्हें आप अन्य भाषाओं में इस एल्गोरिथम को लिखने के लिए संदर्भित कर सकते हैं। प्रोग्राम कैसे काम करता है, इस बारे में 'फुसफुसाते हुए' बताए जाने के बाद अधिकांश प्रोग्रामर (लेखक शामिल) अपने कीबोर्ड पर दौड़ना पसंद करते हैं।

यह दृष्टिकोण दुर्भाग्य से त्रुटियों से ग्रस्त है क्योंकि कार्यक्रम तर्क अधिक जटिल हो जाता है। स्यूडोकोड का उपयोग करना सीखकर आप अपने प्रोग्रामिंग गेम को कैसे समतल करना चाहेंगे?

साझा करना साझा करना कलरव ईमेल स्यूडोकोड क्या है और यह आपको एक बेहतर डेवलपर कैसे बनाता है?

प्रोग्रामिंग सीखने के लिए संघर्ष? स्यूडोकोड सीखकर कोड को समझें। लेकिन स्यूडोकोड क्या है और क्या यह वास्तव में मदद कर सकता है?

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • जावा
  • अजगर
  • कोडिंग ट्यूटोरियल
लेखक के बारे में जेरोम डेविडसन(22 लेख प्रकाशित)

जेरोम MakeUseOf में स्टाफ राइटर हैं। वह प्रोग्रामिंग और लिनक्स पर लेख शामिल करता है। वह एक क्रिप्टो उत्साही भी है और हमेशा क्रिप्टो उद्योग पर नजर रखता है।

नेटफ्लिक्स के लिए शोगो का उपयोग कैसे करें
जेरोम डेविडसन की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें