सम्मिलन क्रमित करें
यह एक सरणी को सॉर्ट करने के लिए एक बहुत ही सरल तुलना प्रकार है। एक तुलना क्रम वर्तमान मान की तुलना करता है जिसे हम सरणी में अन्य मानों के साथ सॉर्ट करने का प्रयास कर रहे हैं। यह एक समय में एक आइटम के साथ काम करता है और एक आवश्यक क्रमबद्ध सरणी प्राप्त करने के लिए प्रत्येक आइटम को सही जगह पर रखता है।
दरअसल, सम्मिलन सॉर्ट कुछ उन्नत एल्गोरिदम जैसे हीप सॉर्ट . जितना कुशल नहीं है या मर्ज सॉर्ट करें . बड़े कार्यक्रमों से निपटने के दौरान यह सबसे अच्छा विकल्प नहीं है। इसके निम्न छिपे हुए स्थिर मान . के कारण , इंसर्शन सॉर्ट छोटे सरणियों से निपटने के दौरान कुछ उन्नत एल्गोरिदम जैसे हीप या क्विक सॉर्ट से बेहतर प्रदर्शन करता है ।
सम्मिलन क्रम एक सरणी के ऊपर बाएँ से दाएँ ले जाकर काम करता है। यह वर्तमान आइटम . का उपयोग करेगा 'कुंजी' . के रूप में और उस स्थान को खोजने के लिए उस कुंजी के बाईं ओर एक मान की खोज करता है जहां कुंजी वास्तव में होनी चाहिए।
एल्गोरिदम
निम्नलिखित उदाहरण में दिया गया सरणी 0,-3,5,8,2,7,6
. है- पुनरावृत्ति 0 - पहले पुनरावृत्ति में हमारे पास केवल वास्तविक क्रमबद्ध सरणी है जो 0,-3,5,8,2,7,6 है।
- पुनरावृत्ति 1 - इस पुनरावृत्ति में कुंजी इंडेक्स 1 पर एक मान है जो -3 है। सम्मिलन क्रम कुंजी की तुलना उस कुंजी के बाईं ओर के मानों से करता है और प्रक्रिया को आगे बढ़ाता है। चूँकि -3, 0 से कम है, यह सरणी को -3,0,5,8,2,7,6 देकर वहाँ 0 के बाईं ओर चला जाता है।
- पुनरावृत्ति 2 - यहां कुंजी 5 है (इंडेक्स 2 पर मान)। इसकी तुलना इसके बाईं ओर के मानों से की जाएगी जो -3 और 0 है, और इसके क्रमबद्ध मान में रखा गया है। तो पुनरावृत्ति 2 के बाद की सरणी -3,0,5,8,2,7,6 है।
- पुनरावृत्ति 3 - इस पुनरावृत्ति में कुंजी मान 8 की तुलना इसके बाईं ओर के तत्वों से की जाएगी और अंतिम सरणी -3,0,5,8,2,7,6 होगी।
- पुनरावृत्ति 4 - इस पुनरावृत्ति में कुंजी मान 2 की तुलना इसके बाईं ओर के मानों से की जाती है और इसे क्रमबद्ध स्थिति में रखा जाता है। तो पुनरावृत्ति 4 के बाद अंतिम सरणी -3,0,2,5,8,7,6 है।
उसी तरह, अंतिम पुनरावृत्ति के अंत में क्रमबद्ध सरणी होगी -3,0,2,5,6,7,8
उदाहरण
<html> <head> <script> function iSort(array) { for (var p = 1; p < array.length; p++) { if (array[p] < array[0]){ array.unshift(array.splice(p,1)[0]); } else if (array[p] > array[p-1]){ continue; } else { for (var q = 1; q < p; q++) { if (array[p] > array[q-1] && array[p] < array[q]){ array.splice(q,0,array.splice(p,1)[0]); } } } } return array; } document.write(iSort([0,-3,5,8,2,7,6])); </script> </body> </html>
आउटपुट
-3,0,2,5,6,7,8