
以下はC#でのインサーションソートのコード例です。
public class InsertionSort
{
public static void Main(string[] args)
{
int[] array = { 64, 25, 12, 22, 11 };
Console.WriteLine("Array before sorting:");
PrintArray(array);
InsertionSortAlgorithm(array);
Console.WriteLine("Array after sorting:");
PrintArray(array);
}
public static void InsertionSortAlgorithm(int[] arr)
{
int n = arr.Length;
for (int i = 1; i < n; ++i)
{
int key = arr[i];
int j = i - 1;
// Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
public static void PrintArray(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
}
このコードでは、整数型の配列をインサーションソートでソートする例を示しています。メインメソッドで配列を定義し、ソート前後の状態を表示します。インサーションソートアルゴリズムはInsertionSortAlgorithm
メソッド内に実装されており、配列の要素をソート済み部分と未ソート部分に分割し、未ソートの要素をソート済みの部分に挿入します。PrintArray
メソッドは配列を表示するために使用されます。
上記のコードを実行すると、インサーションソートによって配列がソートされ、ソート前後の結果が表示されます。
その他のアルゴリズム
