用c#写一个插入排序的程序
时间: 2023-08-30 17:06:49 浏览: 81
以下是一个使用 C# 编写的插入排序算法示例:
```csharp
using System;
class Program
{
static void Main()
{
// 定义待排序数组
int[] arr = { 5, 2, 4, 6, 1, 3 };
// 调用插入排序算法
InsertionSort(arr);
// 输出排序结果
Console.WriteLine("排序后的数组:");
foreach (int num in arr)
{
Console.Write(num + " ");
}
}
static void InsertionSort(int[] arr)
{
int n = arr.Length;
for (int i = 1; i < n; i++)
{
int key = arr[i];
int j = i - 1;
// 将比 key 大的元素向后移动
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j--;
}
// 插入 key
arr[j + 1] = key;
}
}
}
```
在此示例中,我们定义了一个 `InsertionSort` 方法,该方法使用插入排序算法对数组进行排序。算法的基本思想是,将数组分成已排序和未排序两部分,从未排序部分依次取出元素,插入到已排序部分中的合适位置。
在 `InsertionSort` 方法中,我们使用一个循环变量 `i` 来表示待排序部分的第一个元素。对于每个元素 `arr[i]`,我们将其与已排序部分中的元素逐一比较,找到其应该插入的位置,并将比它大的元素向后移动。最后,我们将 `arr[i]` 插入到正确的位置上,完成一次插入操作。
在主函数中,我们定义了一个待排序数组 `arr`,然后调用 `InsertionSort` 方法对其进行排序。排序完成后,我们使用 `foreach` 循环遍历数组,并输出排序结果。
阅读全文