इंसर्शन सॉर्ट एक सॉर्टिंग एल्गोरिदम है जो एक समय में एक तत्व लेता है और उसे सरणी में उसकी सही स्थिति में डालता है। यह प्रक्रिया तब तक जारी रहती है जब तक सरणी क्रमबद्ध नहीं हो जाती।
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("इंसर्शन सॉर्ट");
Console.Write("प्रारंभिक सरणी है: ");
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("\nक्रमबद्ध सरणी है: ");
for (i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}
}
}
}
आउटपुट
उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है।
इंसर्शन सॉर्ट प्रारंभिक सरणी है: 23 9 85 12 99 34 60 15 100 1 क्रमबद्ध सरणी है: 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("इंसर्शन सॉर्ट");
Console.Write("प्रारंभिक सरणी है: ");
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("\nक्रमबद्ध सरणी है: ");
for (i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}