如何實作C#中的選擇排序演算法
選擇排序(Selection Sort)是一種簡單直覺的排序演算法,其基本思想是每次都從待排序元素中選擇最小(或最大)的元素,放到已排序的序列末端。透過重複這個過程,直到所有元素都排序完成。
下面我們來詳細了解如何在C#中實作選擇排序演算法,同時附上具體的程式碼範例。
public static int[] SelectionSort(int[] arr) { int n = arr.Length; // 遍历数组 for (int i = 0; i < n - 1; i++) { int minIndex = i; // 在未排序部分中找到最小元素的索引 for (int j = i + 1; j < n; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } // 将最小元素与未排序部分的第一个元素交换位置 int temp = arr[minIndex]; arr[minIndex] = arr[i]; arr[i] = temp; } return arr; }
class Program { static void Main(string[] args) { int[] arr = { 64, 25, 12, 22, 11 }; Console.WriteLine("原始数组:"); PrintArray(arr); // 调用选择排序方法对数组进行排序 int[] sortedArr = SelectionSort(arr); Console.WriteLine("排序后的数组:"); PrintArray(sortedArr); } // 打印数组 static void PrintArray(int[] arr) { foreach (int element in arr) { Console.Write(element + " "); } Console.WriteLine(); } }
在上面的範例程式中,我們使用了一個包含5個整數的陣列作為排序的範例。首先,我們將原始陣列列印出來,然後呼叫選擇排序方法進行排序,最後列印排序後的陣列。
原始数组: 64 25 12 22 11 排序后的数组: 11 12 22 25 64
透過執行程序,可以看到原始陣列經過選擇排序演算法的處理後,已經變成了有序的陣列。
總結:
選擇排序是一種簡單但低效的排序演算法。它的時間複雜度為O(n^2),適用於較小規模的陣列排序。在實際應用中,我們可以使用更有效率的排序演算法來取代選擇排序,例如快速排序、歸併排序等。
希望本文的介紹和程式碼範例能幫助大家更好地理解和應用選擇排序演算法。
以上是如何實作C#中的選擇排序演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!