ऑड-ईवन तलवार जिसे ब्रिक सॉर्ट के रूप में भी जाना जाता है, एक समान सॉर्टिंग तकनीक है, जैसे बबल सॉर्ट। इस छँटाई तकनीक को 2 चरणों विषम चरण और सम चरण में विभाजित किया गया है, ये दोनों चरण एक साथ प्रत्येक पुनरावृत्ति पर तब तक हैं जब तक कि सभी तत्व क्रमबद्ध नहीं हो जाते।
विषम चरण यह प्रोग्रामिंग तकनीक बबल सॉर्ट के रूप में काम करती है लेकिन केवल उन तत्वों पर जिनका एक विषम सूचकांक होता है।
इसी तरह, सम चरण केवल उन तत्वों पर काम करता है जिनके पास एक समान अनुक्रमणिका है।
इस अवधारणा को और स्पष्ट करने के लिए आइए एक उदाहरण लेते हैं:
Input: a[]={3,5,7,6,1,4,2} Output: 1 2 3 4 5 6 7
स्पष्टीकरण
सम-विषम प्रकार, जिसे ब्रिक सॉर्ट के रूप में भी जाना जाता है, एक सरल छँटाई तकनीक है जिसे समानांतर प्रसंस्करण को ध्यान में रखते हुए डिज़ाइन किया गया था। यह अपने तत्वों को क्रमबद्ध करने के लिए तुलना का उपयोग करता है। तुलना सभी विषम/सम युग्मों में उनकी आयु और तत्वों के साथ होती है। यदि कोई जोड़ा गलत क्रम में है तो उसे सही करने के लिए ऑर्डर बदल दिया जाता है। यह प्रक्रिया तब तक चलती है जब तक सूची क्रमबद्ध नहीं हो जाती। जैसा कि इसे समानांतर प्रक्रियाओं के लिए विकसित किया गया था, यह प्रति प्रोसेसर एक मूल्य का कमाल कर सकता है और दोनों प्रक्रियाएं एक्सचेंज-तुलना प्रकार के ऑपरेशन पर समवर्ती रूप से काम करती हैं। यह एल्गोरिथम मूल रूप से प्रस्तुत किया गया था, और ऐसे प्रोसेसर पर कुशल होने के लिए दिखाया गया था
उदाहरण
#include <stdio.h> #include <math.h> #define MAX 7 void swap(int *,int *); void oddeven_sort(int *); int main() { int a[]={3,5,7,6,1,4,2}, i; oddeven_sort(a); for (i = 0;i < MAX;i++) { printf(" %d", a[i]); } } void swap(int * x, int * y) { int temp; temp = *x; *x = *y; *y = temp; } void oddeven_sort(int * x) { int sort = 0, i; while (!sort) { sort = 1; for (i = 1;i < MAX;i += 2) { if (x[i] > x[i+1]) { swap(&x[i], &x[i+1]); sort = 0; } } for (i = 0;i < MAX - 1;i += 2) { if (x[i] > x[i + 1]) { swap(&x[i], &x[i + 1]); sort = 0; } } } }
आउटपुट
1234567