奇数偶数ソート アルゴリズムはブリック ソートとも呼ばれ、バブル ソートに似たソート テクノロジです。このソート手法は、奇数フェーズと偶数フェーズの 2 つのフェーズに分割されており、すべての要素がソートされるまで各反復で同時に実行されます。
このプログラミング手法の 奇数フェーズはバブル ソートに似ていますが、奇数のインデックスを持つ要素のみを並べ替えます。
同様に、偶数フェーズは偶数のインデックスを持つ要素のみを並べ替えます。
この概念をより明確に説明するために、例を挙げてみましょう:
Input: a[]={3,5,7,6,1,4,2} Output: 1 2 3 4 5 6 7
偶数-奇数ソート (ブリック ソートとも呼ばれる) は、単純なソート手法です。並列処理を念頭に置いて設計されています。比較を使用して要素を並べ替えます。すべての奇数と偶数のペアについて、年齢と要素の間で比較が行われます。いずれかのペアの順序が間違っている場合は、順序を入れ替えて正しい順序にします。このプロセスは、リストがソートされるまで続きます。並列処理用に開発されたため、プロセッサごとに 1 つの値を処理でき、両方のプロセスがスワップ比較タイプの操作を同時に実行します。このアルゴリズムはもともとそのようなプロセッサーで提案され、そのようなプロセッサーで効率的であることが証明されました。
#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 中国語 Web サイトの他の関連記事を参照してください。