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

氣泡排序優化:以旗標提前終止提升效能

     編輯:關於C語言

優化版氣泡排序演算法

標準氣泡排序會執行固定輪數的比較交換,即使陣列已提前有序仍繼續運行。引入「交換旗標」可在某輪無交換發生時立即結束,大幅提升近乎有序資料的排序效能。

核心程式碼片段

int arr[N] = {1,2,3,4,5};
BOOL flag = NO;

for (int i = 0; i < N - 1; i++) {
    flag = NO;
    for (int j = 0; j < N - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
            flag = YES;
            // 交換 arr[j] 與 arr[j+1]
        }
    }
    if (flag == NO)  // 本輪無交換,代表已排序完成
        break;
}

常見排序演算法分類

  • 氣泡排序
  • 插入排序
  • 歸併排序
  • 選擇排序
  • 堆積排序
  • 希爾排序
  • 快速排序

快速排序通常是實務上效能最佳的通用排序法,但氣泡排序優化版適合教學與小規模近乎有序資料集。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved