選擇排序(Selection Sort)是一種簡單的排序演演算法,其實現原理如下:
/// <summary>
/// 選擇排序演演算法
/// </summary>
public static void SelectionSortAlgorithmMain()
{
int[] array = { 64, 25, 12, 22, 11, 99, 3, 100 };
Console.WriteLine("原始陣列: ");
PrintArray(array);
SelectionSortAlgorithm(array);
Console.WriteLine("排序後的陣列: ");
PrintArray(array);
}
static void SelectionSortAlgorithm(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;
}
}
static void PrintArray(int[] arr)
{
int n = arr.Length;
for (int i = 0; i < n; ++i)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
選擇排序演演算法的時間複雜度為O(n^2),其中n是待排序陣列的大小。儘管其時間複雜度較高,但選擇排序演演算法比較簡單易懂,並且在某些特定情況下,例如對於小規模的陣列來說,其效能可能表現得比其他高階排序演演算法要好。
作者:追逐時光者
作者簡介:一個熱愛程式設計,善於分享,喜歡學習、探索、嘗試新事物,新技術的程式猿。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。如果該篇文章對您有幫助的話,可以點一下右下角的【♥推薦♥】,希望能夠持續的為大家帶來好的技術文章,文中可能存在描述不正確或錯誤的地方,歡迎指正、補充,不勝感激 !