C# のバブルソート
次の記事では、C# のバブル ソートの概要を説明します。バブル ソートは、最も単純なアルゴリズムと考えられる並べ替えアルゴリズムであり、要素または数値を特定の順序で配置し、これらの要素は最終的に配列内の並べ替えられた適切な場所に配置されます。
バブルソートアルゴリズム
バブル ソートが機能する基本概念は、配列が考慮されるということです。この配列は、最初のインデックスから最後のインデックスまで反復されます。配列をトラバースする際に、隣接する要素と比較され、要素が間違った順序で存在する場合は交換されます。これは、特定のインデックスで数値が現在の要素よりも小さい場合、数値が交換されることを意味します。このプロセスは、配列が完全にソートされるまで繰り返されます。それはパスの形で行われます。
7 つの乱数の配列を考慮して並べ替えてみましょう:
バブルソートはパスの形式で機能します。これらのパスは、隣接する 2 つの数値を一度に取得し、それらの 2 つの数値を比較します。存在する数値が N であるとします。データ セットを並べ替えるのに必要なパスの数は N – 1 です。各パスでは、これら 2 つの数値を考慮してデータが並べ替えられ、すべての数値が期待どおりに並べ替えられなくなるまでシーケンスが繰り返されます。
パス 1:
90 76 45 93 68 13 98
最初のパスでは、最初の 2 つの数値が比較されます。ここでは 90 と 76 を比較します。90 は 76 より大きいため、交換されます。
76 90 45 93 68 13 98
ここで、90 は 45 と比較されます。(0 も 45 より大きいです。したがって、これは 45 と交換されます。
76 45 90 93 68 13 98
これで、90 と 93 はすでに順番に並んでいます。これらは交換されず、そのまま残ります。したがって、このパスはアルゴリズムに従って停止されます。
パス 2:
76 45 90 93 68 13 98
このパスは再び配列の最初の番号から始まります。これは、並べ替えが 76 から開始されることを意味します。76 は 45 と比較されます。76 より小さい 45 は 76 と交換されます。
45 76 90 93 68 13 98
今度は 76 と 90 がチェックされます。それらはすでに正しい順序になっているため、配列に変更はありません。
このようにして、配列の終わりまで走査が行われます。
バブルソートのアルゴリズム
- BubbleSort(配列 : 並べ替え可能な項目のリスト)
- N= 配列の長さ
- フラグを設定:= True
- フラグ == true の間、I = 1 から N-1 までのステップ 3 から 5 を繰り返します
- フラグを設定:= False
- i:=0 を設定します
- i
- (a) 配列[i+1]>配列[i]の場合:
配列[i]と配列[i+1]を入れ替える フラグを設定:= True- (b) i :=i+1 を設定します
- 終了
- (a) 配列[i+1]>配列[i]の場合:
C# でのバブル ソートの例
以下に例を示します:
例 #1
バブル ソートを実装するための C# プログラム。
コード:
using System; class Bubble { static void bubbleSrt(int []arr) { int num = arr.Length; for (int i = 0; i < num - 1; i++) for (int j = 0; j < num - i - 1; j++) if (arr[j] > arr[j + 1]) { // swap tmp and arr[i] int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } /* Printing the array */ static void printIt(int []arr) { int n = arr.Length; for (int i = 0; i < n; ++i) Console.Write(arr[i] + " "); Console.WriteLine(); } // Main method public static void Main() { int []arr = {90, 76, 45, 93, 68, 13, 98}; bubbleSrt(arr); Console.WriteLine("Sorted array"); printIt(arr); } }
出力:
上記のプログラムには、バブル ソートを使用して数値を並べ替えるメソッドが定義されています。バブルソートには、配列を走査し、一時変数 tmp に交換される数値を格納する 2 つの for ループがあります。この tmp 値は、インデックス j を使用して、本来あるべき位置と交換されます。別の方法を使用して、ソートされた配列を出力します。バブル ソートでは、n – 1 パスを使用して配列をソートします。
バブルソートは降順でも実装できます。
例 #2
降順でのバブル ソートを実装する C# プログラムは次のようになります:
コード:
using System; public class BubbleSrt { public static void Main(string[] args) { int[]arr=new int[10]{23,98,45,12,9,16,65,74,34,29};//Array created with 10 unsorted numbers bubblesort(arr,10); int a; for(a = 0; a < 10; a++) Console.Write(arr[a]+"\t");//Printing the array after sorting in descending order Console.ReadLine(); } //bubble sort static void bubblesort(int[] data, int n) { int a; int b; for(a = 0; a < n; a++) for (b = n-1; b > a; b--) if (data[b] > data[b-1])//Condition to arrange array in descending order { int temp = data[b]; data[b]=data[b-1]; data[b-1]=temp; } } }出力:
ここでは、配列を降順にソートしています。 10 個の数値を持つ配列を宣言しました。その後、メインプログラムで bubblesort 関数を呼び出し、降順で出力します。ここの bubblesort 関数は、配列を走査するために 2 つの変数を受け取ります。ここでは、2 つの for ループを使用して配列を走査し、配列内に存在する値を比較しています。インデックス b とインデックス b – 1 にデータが存在するという条件で比較されます。 b に存在する数値の方が大きい場合は、交換されます。これは内側の for ループで行われます。一度交換されると、配列の最後まで継続されます。
結論
バブルソートは最も単純な並べ替え方法です。これは配列全体を走査し、数値をバブルポップすることで、配列を交換して正しい順序に戻すのに役立ちます。隣接する 2 つの数値を比較し、予想される順序でない場合はそれらをポップします。 C# を使用したこの並べ替えは非常に簡単で、配列内に存在する基本的な変数を使用して実行できます。
以上がC# のバブルソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

XML形式を変更する方法はいくつかあります。Atepadなどのテキストエディターを使用して手動で編集する。 XmlBeautifierなどのオンラインまたはデスクトップXMLフォーマットツールを使用して自動的にフォーマットします。 XSLTなどのXML変換ツールを使用して変換ルールを定義します。または、Pythonなどのプログラミング言語を使用して解析および操作します。元のファイルを変更してバックアップするときは注意してください。
