C#でクイックソートをする方法

以下はC#でのクイックソートのコード例です。

public class QuickSort
{
    public static void Main(string[] args)
    {
        int[] array = { 64, 25, 12, 22, 11 };
        Console.WriteLine("Array before sorting:");
        PrintArray(array);
        QuickSortAlgorithm(array, 0, array.Length - 1);
        Console.WriteLine("Array after sorting:");
        PrintArray(array);
    }

    public static void QuickSortAlgorithm(int[] arr, int low, int high)
    {
        if (low < high)
        {
            int pivotIndex = Partition(arr, low, high);

            // Recursively sort the elements before and after the partition
            QuickSortAlgorithm(arr, low, pivotIndex - 1);
            QuickSortAlgorithm(arr, pivotIndex + 1, high);
        }
    }

    public static int Partition(int[] arr, int low, int high)
    {
        int pivot = arr[high];
        int i = low - 1;

        for (int j = low; j < high; j++)
        {
            if (arr[j] < pivot)
            {
                i++;
                // Swap arr[i] and arr[j]
                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }

        // Swap arr[i+1] and arr[high] (pivot)
        int temp2 = arr[i + 1];
        arr[i + 1] = arr[high];
        arr[high] = temp2;

        return i + 1;
    }

    public static void PrintArray(int[] arr)
    {
        int n = arr.Length;
        for (int i = 0; i < n; ++i)
        {
            Console.Write(arr[i] + " ");
        }
        Console.WriteLine();
    }
}

このコードでは、整数型の配列をクイックソートでソートする例を示しています。メインメソッドで配列を定義し、ソート前後の状態を表示します。クイックソートアルゴリズムはQuickSortAlgorithmメソッド内に実装されており、配列を基準値(pivot)を使って分割し、再帰的にそれぞれの部分配列をソートします。Partitionメソッドは配列を分割するために使用され、基準値を選択し、配列内の要素を比較して適切な位置に移動させます。PrintArrayメソッドは配列を表示するために使用されます。

上記のコードを実行すると、クイックソートによって配列がソートされ、ソート前後の結果が表示されます。

その他のアルゴリズム

プログラミングにおけるソートアルゴリズムには、さまざまな種類があります。この記事では、代表的なソートアルゴリズムを紹介します。 バブルソ...

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

ブランドイメージを構築するための効果的な配色戦略

ブランドイメージを構築するための効果的な配色戦略

デザイナーの年収と年収アップの方法

デザイナーの年収と年収アップの方法

プログラマーが覚えておきたい英語例文100選

プログラマーが覚えておきたい英語例文100選

おすすめの配色見本サイト&カラーパレットツールまとめ

おすすめの配色見本サイト&カラーパレットツールまとめ

C#でヒープソートをする方法

C#でヒープソートをする方法

英語を上達させるための効果的な方法

英語を上達させるための効果的な方法

有名企業のロゴに使われるフォントを一挙紹介!

有名企業のロゴに使われるフォントを一挙紹介!

コピペOK!HTMLでテーブルを作成する方法

コピペOK!HTMLでテーブルを作成する方法