Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

奇偶転置(ブリックソート)のためのC / C ++プログラム?


ここでは、レンガの並べ替えがどのように機能するかを見ていきます。ブリックソートは、バブルソートの1つの変更です。このアルゴリズムは2つの部分に分かれています。これらの部分は奇数部分と偶数部分です。奇数の部分では、奇数のインデックス付きアイテムにバブルソートを使用し、偶数の部分では、偶数のインデックス付き要素にバブルソートを使用します。アイデアを得るためのアルゴリズムを見てみましょう。

アルゴリズム

brickSort(arr、n)

begin
   flag := false
   while the flag is not true, do
      flag := true
      for i := 1 to n-2, increase i by 2, do
         if arr[i] > arr[i+1], then
            exchange arr[i] and arr[i+1]
            flag := false
         end if
      done
      for i := 0 to n-2, increase i by 2, do
         if arr[i] > arr[i+1], then
            exchange arr[i] and arr[i+1]
            flag := false
         end if
      done
   done
end

#include<iostream>
using namespace std;
void brickSort(int arr[], int n){
   bool flag = false;
   while(!flag){
      flag = true;
      for(int i = 1; i<n-1; i= i+2){
         if(arr[i] > arr[i+1]){
            swap(arr[i], arr[i+1]);
            flag = false;
         }
      }
      for(int i = 0; i<n-1; i= i+2){
         if(arr[i] > arr[i+1]){
            swap(arr[i], arr[i+1]);
            flag = false;
         }
      }
   }
}
main() {
   int data[] = {54, 74, 98, 154, 98, 32, 20, 13, 35, 40};
   int n = sizeof(data)/sizeof(data[0]);
   cout << "Sorted Sequence ";
   brickSort(data, n);
   for(int i = 0; i <n;i++){
      cout << data[i] << " ";
   }
}

出力

Sorted Sequence 13 20 32 35 40 54 74 98 98 154

  1. n番目のカタラン数のC/C ++プログラム?

    カタラン数は一連の数です。カタラン数は、さまざまなカウントの問題で発生する一連の自然数を形成します。多くの場合、再帰的に定義されたオブジェクトが関係します。 C n 長さ2nのディック言語の数です。ディックワードは、n個のXとn個のYで構成される文字列であり、文字列の最初のセグメントにXより多くのYが含まれることはありません。たとえば、次は長さ6のディック言語です XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY. 記号Xを開き括弧として、Yを閉じ括弧として再解釈します。C n 正しく一致するn組の括弧を含む式の数をカウントします ((()

  2. 奇偶転置/ブリックソート用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、ブリックソートを使用してソートする必要があります。 ここでは、奇数フェーズと偶数フェーズの2つのフェーズがあります。奇数フェーズでは、バブルソートは奇数のインデックス付き要素で実行され、偶数フェーズでは、バブルソートは偶数のインデックス付き要素で実行されます。 それでは、以下の実装のソリューションを見てみましょう- 例 def oddEvenSort(arr, n):    # flag    isSorted = 0   &nbs