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

C# 經典排序算法實作:氣泡排序

     編輯:關於C#

算法原理

氣泡排序重複遍歷陣列,比較相鄰元素並交換順序錯誤的配對,大元素像氣泡浮到陣列末端。時間複雜度 O(n²),穩定排序,可透過旗標優化最好情況至 O(n)。

C# 實作 (優化版)

using System;

public class BubbleSorter
{
    public void Sort(int[] list)
    {
        bool swapped;
        for (int pass = 1; pass < list.Length; pass++)
        {
            swapped = false;
            for (int i = 0; i < list.Length - pass; i++)
            {
                if (list[i] > list[i + 1])
                {
                    int temp = list[i];
                    list[i] = list[i + 1];
                    list[i + 1] = temp;
                    swapped = true;
                }
            }
            if (!swapped) break; // 提前結束
        }
    }
}

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

教學價值與實務建議

  • 氣泡排序主要用於教學展示排序基本概念。
  • 實務開發絕不建議使用,即使是小資料集,插入排序效能也優於氣泡排序。
  • .NET 內建 Array.Sort/List.Sort 採用 Introsort (快速+堆積+插入混合),效能遠超過氣泡排序。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved