奇偶転置(ブリックソート)のための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
-
n番目のカタラン数のC/C ++プログラム?
カタラン数は一連の数です。カタラン数は、さまざまなカウントの問題で発生する一連の自然数を形成します。多くの場合、再帰的に定義されたオブジェクトが関係します。 C n 長さ2nのディック言語の数です。ディックワードは、n個のXとn個のYで構成される文字列であり、文字列の最初のセグメントにXより多くのYが含まれることはありません。たとえば、次は長さ6のディック言語です XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY. 記号Xを開き括弧として、Yを閉じ括弧として再解釈します。C n 正しく一致するn組の括弧を含む式の数をカウントします ((()
-
奇偶転置/ブリックソート用のPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、ブリックソートを使用してソートする必要があります。 ここでは、奇数フェーズと偶数フェーズの2つのフェーズがあります。奇数フェーズでは、バブルソートは奇数のインデックス付き要素で実行され、偶数フェーズでは、バブルソートは偶数のインデックス付き要素で実行されます。 それでは、以下の実装のソリューションを見てみましょう- 例 def oddEvenSort(arr, n): # flag isSorted = 0 &nbs