ホームページ  >  記事  >  バックエンド開発  >  パリティソート(ブリックソート)用のC/C++プログラム

パリティソート(ブリックソート)用のC/C++プログラム

WBOY
WBOY転載
2023-09-14 17:53:021367ブラウズ

パリティソート(ブリックソート)用のC/C++プログラム

奇数偶数ソート アルゴリズムはブリック ソートとも呼ばれ、バブル ソートに似たソート テクノロジです。このソート手法は、奇数フェーズと偶数フェーズの 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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。