
以下は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
メソッドは配列を表示するために使用されます。
上記のコードを実行すると、クイックソートによって配列がソートされ、ソート前後の結果が表示されます。
その他のアルゴリズム
