C# 的选择排序程序
选择排序是一种排序算法,它在循环的每次迭代中找出数组中的最小值。然后,这个最小值与当前数组元素交换。这个过程一直持续到数组被排序完成。
一个用 C# 展示选择排序的程序如下。
示例
using System; public class Example { static void Main(string[] args) { int[] arr = new int[10] { 56, 1, 99, 67, 89, 23, 44, 12, 78, 34 }; int n = 10; Console.WriteLine("Selection sort"); Console.Write("Initial array is: "); for (int i = 0; i < n; i++) { Console.Write(arr[i] + " "); } int temp, smallest; for (int i = 0; i < n - 1; i++) { smallest = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[smallest]) { smallest = j; } } temp = arr[smallest]; arr[smallest] = arr[i]; arr[i] = temp; } Console.WriteLine(); Console.Write("Sorted array is: "); for (int i = 0; i < n; i++) { Console.Write(arr[i] + " "); } } }
输出
上面程序的输出如下。
Selection sort Initial array is: 56 1 99 67 89 23 44 12 78 34 Sorted array is: 1 12 23 34 44 56 67 78 89 99
现在,让我们了解上面程序的原理。
首先初始化数组,并使用 for 循环打印其值。这一点可以在以下代码片段中看到。
int[] arr = new int[10] { 56, 1, 99, 67, 89, 23, 44, 12, 78, 34 }; int n = 10; Console.WriteLine("Selection sort"); Console.Write("Initial array is: "); for (int i = 0; i < n; i++) { Console.Write(arr[i] + " "); }
使用嵌套 for 循环进行实际的排序过程。在外层 for 循环的每次遍历中,找出数组中的最小元素并用当前元素替换它。此过程一直持续到数组被排序完成。这一点可以在以下代码片段中看到。
for (int i = 0; i < n - 1; i++) { smallest = i; for (int j = i + 1; j < n; j++) { if (arr[j] < arr[smallest]) { smallest = j; } } temp = arr[smallest]; arr[smallest] = arr[i]; arr[i] = temp; }
最后显示经过排序的数组。这一点可以在以下代码片段中看到。
Console.Write("Sorted array is: "); for (int i = 0; i < n; i++) { Console.Write(arr[i] + " "); }
广告