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

WBOY
リリース: 2023-09-14 17:53:02
転載
1231 人が閲覧しました

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

奇数偶数ソート アルゴリズムはブリック ソートとも呼ばれ、バブル ソートに似たソート テクノロジです。このソート手法は、奇数フェーズと偶数フェーズの 2 つのフェーズに分割されており、すべての要素がソートされるまで各反復で同時に実行されます。

このプログラミング手法の 奇数フェーズはバブル ソートに似ていますが、奇数のインデックスを持つ要素のみを並べ替えます。

同様に、偶数フェーズは偶数のインデックスを持つ要素のみを並べ替えます。

この概念をより明確に説明するために、例を挙げてみましょう:

Input: a[]={3,5,7,6,1,4,2}
Output: 1 2 3 4 5 6 7
ログイン後にコピー

説明

偶数-奇数ソート (ブリック ソートとも呼ばれる) は、単純なソート手法です。並列処理を念頭に置いて設計されています。比較を使用して要素を並べ替えます。すべての奇数と偶数のペアについて、年齢と要素の間で比較が行われます。いずれかのペアの順序が間違っている場合は、順序を入れ替えて正しい順序にします。このプロセスは、リストがソートされるまで続きます。並列処理用に開発されたため、プロセッサごとに 1 つの値を処理でき、両方のプロセスがスワップ比較タイプの操作を同時に実行します。このアルゴリズムはもともとそのようなプロセッサーで提案され、そのようなプロセッサーで効率的であることが証明されました。

#include 
#include 
#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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!