অড-ইভেন সোর্ট যাকে ব্রিক সোর্টও বলা হয়, এটি বাবল সোর্টের মতো একটি সিমিলার সর্টিং টেকনিক। এই সর্টিং টেকনিক দুটি ফেজে ভাগ: অড ফেজ এবং ইভেন ফেজ, এই দুটি ফেজ প্রতিটি ইটারেশনে একসাথে কাজ করে যতক্ষণ না সব এলিমেন্ট সোর্ট হয়।
অড ফেজ এই প্রোগ্রামিং টেকনিকটি বাবল সর্টের মতো কাজ করে কিন্তু শুধু যেসব এলিমেন্টের অড ইনডেক্স আছে সেগুলোর ওপর।
একইভাবে, ইভেন ফেজ শুধু যেসব এলিমেন্টের ইভেন ইনডেক্স আছে সেগুলোর ওপর কাজ করে।
কনসেপ্ট পরিষ্কার করার জন্য একটি উদাহরণ নেই :
Input: a[]={3,5,7,6,1,4,2} Output: 1 2 3 4 5 6 7
ব্যাখ্যা
ইভেন-অড সোর্ট যাকে ব্রিক সোর্টও বলা হয়, এটি একটি সিম্পল সর্টিং টেকনিক যা প্যারালেল প্রসেসিং ধরে রেখে ডিজাইন করা হয়েছিল। এটি তুলনা ব্যবহার করে এলিমেন্ট সোর্ট করে। তুলনা হয় সব অড/ইভেন পেয়ার তাদের المجاورة এলিমেন্টের সাথে। যদি কোনো পেয়ার ভুল অর্ডারে থাকে, তবে অর্ডার সই করা হয়। এই প্রসেস চলতে থাকে যতক্ষণ না লিস্ট সোর্ট হয়। যেহেতু এটি প্যারালেল প্রসেসের জন্য ডেভেলপ করা হয়েছিল, এটি অসামান্যভাবে একটি ভ্যালু প্রতি প্রসেসর হ্যান্ডেল করতে পারে এবং দুটি প্রসেস কনকারেন্টলি এক্সচেঞ্জ-কমপেয়ার টাইপ অপারেশন করে। এই অ্যালগরিদম মূলত প্রস্তাব করা হয়েছিল এবং такие প্রসেসরlarda দক্ষতা দেখানো হয়েছিল।
উদাহরণ
#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