चयन सॉर्ट तकनीक में, सूची को दो भागों में बांटा गया है। एक भाग में सभी तत्वों को क्रमबद्ध किया जाता है और दूसरे भाग में वस्तुओं को क्रमबद्ध नहीं किया जाता है। सबसे पहले, हम सरणी से अधिकतम या न्यूनतम डेटा लेते हैं। डेटा प्राप्त करने के बाद (न्यूनतम कहें) हम इसे पहले स्थान के डेटा को न्यूनतम डेटा के साथ बदलकर सूची की शुरुआत में रखते हैं। प्रदर्शन करने के बाद सरणी छोटी हो रही है। इस प्रकार यह छँटाई तकनीक की जाती है।
चयन सॉर्ट तकनीक की जटिलता
- समय जटिलता:O(n^2)
- अंतरिक्ष जटिलता:O(1)
इनपुट और आउटपुट
Input: The unsorted list: 5 9 7 23 78 20 Output: Array before Sorting: 5 9 7 23 78 20 Array after Sorting: 5 7 9 20 23 78
एल्गोरिदम
selectionSort(array, size)
इनपुट - डेटा की एक सरणी, और सरणी में कुल संख्या
आउटपुट - क्रमबद्ध सरणी
Begin for i := 0 to size-2 do //find minimum from ith location to size 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) { //swap the content of a and 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;//get index of minimum data for(j = i+1; j<size; j++) if(array[j] < array[imin]) imin = j; //placing in correct position swap(array[i], array[imin]); } } int main() { int n; cout << "Enter the number of elements: "; cin >> n; int arr[n]; //create an array with given number of elements cout << "Enter elements:" << endl; for(int i = 0; i<n; i++) { cin >> arr[i]; } cout << "Array before Sorting: "; display(arr, n); selectionSort(arr, n); cout << "Array after Sorting: "; display(arr, n); }
आउटपुट
Enter the number of elements: 6 Enter elements: 5 9 7 23 78 20 Array before Sorting: 5 9 7 23 78 20 Array after Sorting: 5 7 9 20 23 78