दिए गए डेटा को सॉर्ट करने के लिए शेकर सॉर्ट का उपयोग किया जाता है। बबल सॉर्ट के विपरीत, शेकर सॉर्ट, दोनों दिशाओं में सरणी को ऑर्डर करता है। इस एल्गोरिथम की सबसे खराब जटिलता O(n^2) है।
एल्गोरिदम
Begin ShakerSort() function has ‘arr’ the array of data and ‘n’ the number of values, in the argument list. // Implement Sorting algorithm using nested for loops. The parent loop will run on ‘i’ from 0 to n-1 and contains two loops inside. The first loop will run on ‘j’ from i+1 to n-1 and use swap() if a[j] < a[j-1]. Decrement n. The second loop will run on 'k' from m-1 to i+1 and use swap() if a[k] < a[k-1]. Increment i. End
उदाहरण कोड
#include<iostream> using namespace std; void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } void ShakerSort(int a[], int m) { int i, j, k; for(i = 0; i < m;) { for(j = i+1; j < m; j++) { if(a[j] < a[j-1]) swap(&a[j], &a[j-1]); } m--; for(k = m-1; k > i; k--) { if(a[k] < a[k-1]) swap(&a[k], &a[k-1]); } i++; } } int main() { int n, i; cout<<"\nEnter the number of data element to be sorted: "; cin>>n; int a[n]; for(i = 0; i < n; i++) { cout<<"Enter element "<<i+1<<": "; cin>>a[i]; } ShakerSort(a, n); cout<<"\nSorted Data "; for (i = 0; i < n; i++) cout<<"->"<<a[i]; return 0; }
आउटपुट
Enter the number of data element to be sorted: 4 Enter element 1: 3 Enter element 2: 1 Enter element 3: 7 Enter element 4: 6 Sorted Data ->1->3->6->7