सम्मिलन छँटाई एक छँटाई एल्गोरिथ्म है जो एक समय में एक तत्व लेता है और उसे सरणी में उसकी सही स्थिति में सम्मिलित करता है। यह प्रक्रिया तब तक जारी रहती है जब तक कि सरणी क्रमबद्ध नहीं हो जाती।
एक प्रोग्राम जो C# में इंसर्शन सॉर्ट प्रदर्शित करता है, वह इस प्रकार दिया गया है।
उदाहरण
using System; namespace InsertionSortDemo { class Example { static void Main(string[] args) { int[] arr = new int[10] { 23, 9, 85, 12, 99, 34, 60, 15, 100, 1 }; int n = 10, i, j, val, flag; Console.WriteLine("Insertion Sort"); Console.Write("Initial array is: "); for (i = 0; i < n; i++) { Console.Write(arr[i] + " "); } for (i = 1; i < n; i++) { val = arr[i]; flag = 0; for (j = i - 1; j >= 0 && flag != 1; ) { if (val < arr[j]) { arr[j + 1] = arr[j]; j--; arr[j + 1] = val; } else flag = 1; } } Console.Write("\nSorted Array is: "); for (i = 0; i < n; i++) { Console.Write(arr[i] + " "); } } } }
आउटपुट
उपरोक्त कार्यक्रम का आउटपुट इस प्रकार है।
Insertion Sort Initial array is: 23 9 85 12 99 34 60 15 100 1 Sorted Array is: 1 9 12 15 23 34 60 85 99 100
अब, उपरोक्त कार्यक्रम को समझते हैं।
सबसे पहले ऐरे को इनिशियलाइज़ किया जाता है और इसका मान लूप के लिए उपयोग करके प्रिंट किया जाता है। इसे निम्नलिखित कोड स्निपेट में देखा जा सकता है -
int[] arr = new int[10] { 23, 9, 85, 12, 99, 34, 60, 15, 100, 1 }; int n = 10, i, j, val, flag; Console.WriteLine("Insertion Sort"); Console.Write("Initial array is: "); for (i = 0; i < n; i++) { Console.Write(arr[i] + " "); }
लूप के लिए एक नेस्टेड वास्तविक छँटाई प्रक्रिया के लिए उपयोग किया जाता है। लूप के लिए बाहरी के प्रत्येक पास में, वर्तमान तत्व को सरणी में उसकी सही स्थिति में डाला जाता है। यह प्रक्रिया तब तक जारी रहती है जब तक कि सरणी सॉर्ट नहीं हो जाती। इसे निम्नलिखित कोड स्निपेट में देखा जा सकता है।
for (i = 1; i < n; i++) { val = arr[i]; flag = 0; for (j = i - 1; j >= 0 && flag != 1; ) { if (val < arr[j]) { arr[j + 1] = arr[j]; j--; arr[j + 1] = val; } else flag = 1; } }
अंत में, क्रमबद्ध सरणी प्रदर्शित की जाती है। इसे निम्नलिखित कोड स्निपेट में देखा जा सकता है।
Console.Write("\nSorted Array is: "); for (i = 0; i < n; i++) { Console.Write(arr[i] + " "); }