इस खंड में हम देखेंगे कि C++ में सॉर्टिंग एल्गोरिथम कैसे किया जाता है। एक क्रमबद्ध सरणी एक सरणी है जिसमें प्रत्येक तत्व को किसी क्रम में क्रमबद्ध किया जाता है जैसे संख्यात्मक, वर्णानुक्रम आदि। संख्यात्मक सरणी को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे कि बबलसॉर्ट, इंसर्शन सॉर्ट, सेलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, हीप सॉर्ट आदि। चयन प्रकार का उपयोग करके सरणी को छाँटने के बारे में अधिक जानकारी नीचे दी गई है।
चयन क्रम एक छँटाई विधि है जो एक क्रमबद्ध सरणी उत्पन्न करती है। यह बार-बार सरणी में सबसे छोटे तत्व को ढूंढता है और इसे अनसोल्ड भाग की शुरुआत में तत्व के साथ बदल देता है।
एक प्रोग्राम जो सिलेक्शन सॉर्ट का उपयोग करके सॉर्ट किए गए ऐरे को लागू करता है, वह इस प्रकार दिया गया है।
उदाहरण
#include<iostream> using namespace std; void selectionSort(int a[], int n) { int i, j, min, temp; for (i = 0; i < n - 1; i++) { min = i; for (j = i + 1; j < n; j++) if (a[j] < a[min]) min = j; temp = a[i]; a[i] = a[min]; a[min] = temp; } } int main() { int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 }; int n = sizeof(a)/ sizeof(a[0]); int i; cout<<"Given array is:"<<endl; for (i = 0; i < n; i++) cout<< a[i] <<" "; cout<<endl; selectionSort(a, n); printf("\nSorted array is: \n"); for (i = 0; i < n; i++) cout<< a[i] <<" "; return 0; }
आउटपुट
Given array is: 22 91 35 78 10 8 75 99 1 67 Sorted array is: 1 8 10 22 35 67 75 78 91 99
उपरोक्त प्रोग्राम में, SelectionSort() एक ऐसा फंक्शन है जो सिलेक्शन सॉर्ट का उपयोग करके ऐरे a[] को सॉर्ट करता है। सिलेक्शनसॉर्ट () में लूप के लिए दो हैं। लूप के लिए बाहरी के प्रत्येक पुनरावृत्ति में, i के बाद शेष सरणी में न्यूनतम तत्व पाया जाता है और फिर वर्तमान में i पर तत्व के साथ बदल दिया जाता है। यह तब तक दोहराया जाता है जब तक कि सरणी अलग नहीं हो जाती। यह नीचे दिखाया गया है।
void selectionSort(int a[], int n) { int i, j, min, temp; for (i = 0; i < n - 1; i++) { min = i; for (j = i + 1; j < n; j++) if (a[j] < a[min]) min = j; temp = a[i]; a[i] = a[min]; a[min] = temp; } }
मुख्य () फ़ंक्शन में, सरणी a [] परिभाषित की गई है। फिर फ़ंक्शन चयन सॉर्ट () को सरणी a [] और उसके आकार n के साथ कहा जाता है। अंत में, क्रमबद्ध सरणी प्रदर्शित की जाती है। यह नीचे दिखाया गया है।
int main() { int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 }; int n = sizeof(a)/ sizeof(a[0]); int i; cout<<"Given array is:"<<endl; for (i = 0; i < n; i++) cout<< a[i] <<" "; cout<<endl; selectionSort(a, n); printf("\nSorted array is: \n"); for (i = 0; i < n; i++) cout<< a[i] <<" "; return 0; }