c#中 使用选择排序法实现一维数组元素排序 被排序前数组:21 25 49 37 16 8 要求:输出每轮排序后的数组 排序前:21 25 49 37 16 8 第1次排序后:8 25 49 37 16 21
时间: 2024-09-26 18:18:10 浏览: 38
在C#中,你可以使用选择排序算法对一维整数数组进行排序。选择排序的工作原理是在未排序部分找到最小或最大的元素,并将其放到已排序部分的末尾。下面是使用选择排序实现这个过程的步骤,每次排序后更新数组:
```csharp
using System;
class Program
{
static void Main()
{
int[] arr = { 21, 25, 49, 37, 16, 8 };
Console.WriteLine("排序前:");
PrintArray(arr);
// 选择排序
for (int i = 0; i < arr.Length - 1;)
{
// 找到剩余部分中最小的元素
int minIndex = i;
for (int j = i + 1; j < arr.Length; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
// 将找到的最小元素与第一个位置交换
swap(ref arr[i], ref arr[minIndex]);
Console.WriteLine($"第{i + 1}次排序后:");
PrintArray(arr);
i++;
}
}
// 用于交换数组中两个元素的辅助函数
static void swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
static void PrintArray(int[] arr)
{
foreach (int num in arr)
Console.Write(num + " ");
Console.WriteLine();
}
}
```
运行这段代码,你会看到每轮排序后的数组:
1. 第1次排序后:8 25 49 37 16 21
...
第n次排序后:[最终排序后的数组]
请注意,选择排序不是最高效的排序算法,特别是对于大数组,其时间复杂度为O(n^2)。但在教学或理解基本排序算法时,它是一个很好的示例。
阅读全文