本文介紹一個完整的排序算法比較程式,實現了 Shell Sort、Quick Sort、Heap Sort、Merge Sort 四大經典算法,並提供互動式選單系統,可對相同資料集進行排序耗時、比較次數、移動次數的量化分析。適用於演算法課程教學與效能評估參考。
程式採用模組化設計,主要包含:
compCount、shiftCount 記錄比較/移動次數clock() 測量 CPU 時間採用 gap = n/2 遞減增量序列,實現分組插入排序。程式碼中嵌入詳細的計數邏輯,精確統計每次比較與移動。
採用單向掃描分區策略(Partition),以首元素為基準,透過 key[0] 暫存基準值。遞迴實現 QSort,展示經典分治思想。
底層以 sift 下沉操作維護大頂堆。先建堆(length/2 到 1),再重複交換堆頂與末尾元素並縮小堆範圍。空間複雜度 O(1)。
非遞迴自底向上實現(Merge + Mergesort),雙緩衝區交替合併,避免遞迴開銷。動態分配暫存陣列 temp,體現空間換時間策略。
每次排序前歸零計數器,排序後輸出:
SHELLSORT COST TIME : 0.001234 SECONDS.
Compare 1245 times. Shift 832 times.
此設計便於分析算法在不同資料分佈(有序、逆序、隨機)下的真實表現。
LOCK* 控制操作順序)完整程式碼包含錯誤處理、記憶體檢查、跨平台考量(CLK_TCK),可直接在 Turbo C / GCC 環境編譯執行。