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] + " ");

}

以上是 C#中的选择排序程序 的全部内容, 来源链接: utcz.com/z/326578.html

回到顶部