इन्सर्शन सॉर्ट एल्गोरिदम चयन सॉर्ट एल्गोरिदम से काफी मिलता-जुलता है। यह बहुत सहज-समझ में आने वाला तरीका है, जिसमें ऐरे के बाएँ हिस्से को क्रमबद्ध रखा जाता है और उसके बाद दाएँ ओर बढ़ते हुए आख़िर तक ऐसे ही प्रोसेस किया जाता है।
विशेष रूप से, इन्सर्शन सॉर्ट एल्गोरिदम में हम ऐरे के सबसे बाएँ एलिमेंट से शुरू करते हैं और क्रमशः दाएँ ओर बढ़ते जाते हैं। जैसे ही हमें कोई ऐसा एलिमेंट दिखता है जो इसके पहले वाले एलिमेंट्स से छोटा है, हम उससे पहले के सभी एलिमेंट्स को एक-एक करके दाईं ओर शिफ्ट कर देते हैं ताकि उस एलिमेंट के लिए सही जगह बन सके, और फिर हम उसे वहीं रख देते हैं। उदाहरण के तौर पर, अगर हमारे पास ऐरे [0, 2, 4, 1, 10, 8] है और हम फिलहाल 1 पर हैं, तो पहले हम 4 को शिफ्ट करेंगे, फिर 2 को, और उसके बाद 1 को 0 और 2 के बीच रख देंगे। इस तरह हमें [0, 1, 2, 4, 10, 8] मिल जाएगा। फिर हम अगले एलिमेंट 10 की ओर बढ़ेंगे और चूँकि यह बाईं ओर के सभी एलिमेंट्स से बड़ा है, इसलिए कुछ नहीं करेंगे। इसके बाद 8 को लेंगे और उसे 10 से पहले रखने के लिए 10 को दाईं ओर शिफ्ट कर देंगे, ताकि 8 को 4 और 10 के बीच जगह मिल सके।
a = [...]
for i in range(1, len(a)): # दूसरे एलिमेंट से शुरू करें
while i > 0 and a[i] < a[i - 1]: # जब तक मौजूदा एलिमेंट छोटा है
a[i - 1], a[i] = a[i], a[i - 1] # मौजूदा एलिमेंट को पिछले एलिमेंट के साथ अदल-बदल करें
i -= 1 # मौजूदा एलिमेंट के इंडेक्स का ध्यान रखें
print(a)
इन्सर्शन सॉर्ट एल्गोरिदम मौजूदा एलिमेंट को पहले से प्रोसेस किए हुए हिस्से में उसकी सही स्थिति में डालता है। सबसे ख़राब स्थिति (Worst case) में, अगर ऐरे के एलिमेंट घटते हुए क्रम में हों, तो हर बार नया एलिमेंट अपनी सही जगह पर रखने के लिए सभी पिछले एलिमेंट्स को शिफ्ट करना पड़ेगा। इस वजह से कुल मिलाकर ऑपरेशन्स करने पड़ सकते हैं।
आइए कुछ ऐरे लेकर एल्गोरिदम को स्टेप-बाय-स्टेप देखें: