奇偶排序演算法也被稱為磚塊排序,它是一種類似於冒泡排序的排序技術。這種排序技術分為兩個階段:奇數階段和偶數階段,這兩個階段在每次迭代中同時進行,直到所有元素都被排序。
這個程式設計技術的奇數階段類似於冒泡排序,但只對具有奇數索引的元素進行排序。
同樣地,偶數階段只對具有偶數索引的元素進行排序。
為了更清楚地說明這個概念,讓我們舉個例子:
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
以上是奇偶排序(磚塊排序)的C/C++程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!