首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 經典排序算法實作:選擇排序

     編輯:關於C#

算法原理

選擇排序每次從未排序區間找出最小元素,放到已排序區間末尾。時間複雜度 O(n²),空間複雜度 O(1),不穩定排序。

C# 實作

using System;

public class SelectionSorter
{
    public void Sort(int[] list)
    {
        for (int i = 0; i < list.Length - 1; i++)
        {
            int min = i;
            for (int j = i + 1; j < list.Length; j++)
            {
                if (list[j] < list[min]) min = j;
            }
            // 交換
            int temp = list[min];
            list[min] = list[i];
            list[i] = temp;
        }
    }
}

// 測試
public class Program
{
    public static void Main()
    {
        int[] arr = { 1, 5, 3, 6, 10, 55, 9, 2, 87, 12, 34, 75, 33, 47 };
        new SelectionSorter().Sort(arr);
        Console.WriteLine(string.Join(" ", arr));
        // 輸出: 1 2 3 5 6 9 10 12 33 34 47 55 75 87
    }
}

特性分析

指標數值
時間複雜度 (最好/平均/最差)O(n²) / O(n²) / O(n²)
空間複雜度O(1)
穩定性不穩定
交換次數最多 n-1 次 (最少交換的排序之一)

適用場景

  • 小規模資料集 (n < 50)。
  • 記憶體寫入成本極高時 (交換次數少)。
  • 教學示範基本排序邏輯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved