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] + " ");
}
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP