सिलेक्शन सॉर्ट तकनीक में, लिस्ट को दो भागों में विभाजित किया जाता है। एक भाग में सभी एलिमेंट्स सॉर्टेड होते हैं और दूसरे भाग में आइटम्स अनसॉर्टेड होते हैं। पहले, हम ऐरे से अधिकतम या न्यूनतम डेटा लेते हैं। डेटा प्राप्त करने के बाद (मान लें न्यूनतम) हम इसे लिस्ट की शुरुआत में पहले स्थान के डेटा को न्यूनतम डेटा से बदलकर रखते हैं। ऐसा करने के बाद ऐरे छोटा होता जा रहा है। इस प्रकार यह सॉर्टिंग तकनीक की जाती है।
सिलेक्शन सॉर्ट तकनीक की जटिलता
- टाइम कॉम्प्लेक्सिटी: O(n^2)
- स्पेस कॉम्प्लेक्सिटी: O(1)
इनपुट और आउटपुट
इनपुट: अनसॉर्टेड लिस्ट: 5 9 7 23 78 20 आउटपुट: सॉर्टिंग से पहले ऐरे: 5 9 7 23 78 20 सॉर्टिंग के बाद ऐरे: 5 7 9 20 23 78
एल्गोरिदम
selectionSort(array, size)
इनपुट: डेटा का एक ऐरे, और ऐरे में कुल संख्या
आउटपुट: सॉर्टेड ऐरे
Begin
for i := 0 to size-2 do // ith लोकेशन से साइज तक न्यूनतम ढूंढें
iMin := i;
for j := i+1 to size - 1 do
if array[j] < array[iMin] then
iMin := j
done
swap array[i] with array[iMin].
done
End
उदाहरण
#include <iostream>
using namespace std;
void swapping(int &a, int &b) {
// a और b की सामग्री को स्वैप करें
int temp;
temp = a;
a = b;
b = temp;
}
void display(int *array, int size) {
for(int i = 0; i < size; i++)
cout << array[i] << " ";
cout << endl;
}
void selectionSort(int *array, int size) {
int i, j, imin;
for(i = 0; i < size - 1; i++) {
imin = i; // न्यूनतम डेटा का इंडेक्स प्राप्त करें
for(j = i + 1; j < size; j++)
if(array[j] < array[imin])
imin = j;
// सही स्थिति में रखें
swap(array[i], array[imin]);
}
}
int main() {
int n;
cout << "एलिमेंट्स की संख्या दर्ज करें: ";
cin >> n;
int arr[n]; // दिए गए एलिमेंट्स की संख्या के साथ ऐरे बनाएं
cout << "एलिमेंट्स दर्ज करें:" << endl;
for(int i = 0; i < n; i++) {
cin >> arr[i];
}
cout << "सॉर्टिंग से पहले ऐरे: ";
display(arr, n);
selectionSort(arr, n);
cout << "सॉर्टिंग के बाद ऐरे: ";
display(arr, n);
}
आउटपुट
एलिमेंट्स की संख्या दर्ज करें: 6 एलिमेंट्स दर्ज करें: 5 9 7 23 78 20 सॉर्टिंग से पहले ऐरे: 5 9 7 23 78 20 सॉर्टिंग के बाद ऐरे: 5 7 9 20 23 78