सिलेक्शन सॉर्ट एक सॉर्टिंग एल्गोरिदम है जो लूप के प्रत्येक पुनरावृत्ति के लिए सरणी में न्यूनतम मान ढूंढता है। फिर इस न्यूनतम मान को वर्तमान सरणी तत्व के साथ स्वैप किया जाता है। यह प्रक्रिया तब तक अपनाई जाती है जब तक सरणी क्रमबद्ध नहीं हो जाती।
C# में सिलेक्शन सॉर्ट को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है।
उदाहरण
using System;
public class Example {
static void Main(string[] args) {
int[] arr = new int[10] { 56, 1, 99, 67, 89, 23, 44, 12, 78, 34 };
int n = 10;
Console.WriteLine("सिलेक्शन सॉर्ट");
Console.Write("प्रारंभिक सरणी है: ");
for (int i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}
int temp, smallest;
for (int i = 0; i < n - 1; i++) {
smallest = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[smallest]) {
smallest = j;
}
}
temp = arr[smallest];
arr[smallest] = arr[i];
arr[i] = temp;
}
Console.WriteLine();
Console.Write("क्रमबद्ध सरणी है: ");
for (int i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}
}
}
आउटपुट
उपरोक्त प्रोग्राम का आउटपुट निम्नलिखित है।
सिलेक्शन सॉर्ट प्रारंभिक सरणी है: 56 1 99 67 89 23 44 12 78 34 क्रमबद्ध सरणी है: 1 12 23 34 44 56 67 78 89 99
अब, आइए उपरोक्त प्रोग्राम को समझते हैं।
पहले सरणी को आरंभ किया जाता है और फॉर लूप का उपयोग करके इसका मान प्रिंट किया जाता है। यह निम्नलिखित कोड स्निपेट में देखा जा सकता है।
int[] arr = new int[10] { 56, 1, 99, 67, 89, 23, 44, 12, 78, 34 };
int n = 10;
Console.WriteLine("सिलेक्शन सॉर्ट");
Console.Write("प्रारंभिक सरणी है: ");
for (int i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}
वास्तविक सॉर्टिंग प्रक्रिया के लिए एक नेस्टेड फॉर लूप का उपयोग किया जाता है। बाहरी फॉर लूप के प्रत्येक पास में, सरणी में सबसे छोटा तत्व ढूंढा जाता है और वर्तमान तत्व द्वारा प्रतिस्थापित किया जाता है। यह प्रक्रिया तब तक जारी रहती है जब तक सरणी क्रमबद्ध नहीं हो जाती। यह निम्नलिखित कोड स्निपेट में देखा जा सकता है।
for (int i = 0; i < n - 1; i++) {
smallest = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[smallest]) {
smallest = j;
}
}
temp = arr[smallest];
arr[smallest] = arr[i];
arr[i] = temp;
}
अंत में क्रमबद्ध सरणी प्रदर्शित की जाती है। यह निम्नलिखित कोड स्निपेट में देखा जा सकता है।
Console.Write("क्रमबद्ध सरणी है: ");
for (int i = 0; i < n; i++) {
Console.Write(arr[i] + " ");
}