【項目 - 大資料集上排序算法性能的體驗】
設計一個函數,産生一個至少5萬條記錄的資料集合。在同一資料集上,用直接插入排序、冒泡排序、快速排序、直接選擇排序、堆排序、歸并排序、基數排序等算法進行排序,記錄所需要的時間,經過對比,得到對複雜度不同的各種算法在運作時間方面的感性認識。
提示1:這一項目需要整合多種排序算法,可以考慮先建設排序算法庫,作為我們這門課算法庫的收官之作; 提示2:本項目旨在獲得對于複雜度不同算法的感性認識,由于資料分布特點、計算機運作狀态等不同,其結果并不能完全代替對算法複雜度的理論分析; 提示3:由于c語言标準提供的時間函數隻精确到秒,幾種o(nlog 2 n) 級别的算法,在5萬條記錄的壓力下,并不能明顯地看出優劣,可以忽略直接插入排序、冒泡排序、直接選擇排序這三種相對低效率的算法(以節約時間。若能夠忍受他們長時間地運作,請自便。),成10倍地加大資料量,然後進行觀察。
[參考解答]
1.測試用的主要程式——main.cpp
2.頭檔案 —— sort.h
3.算法的實作—— sort.cpp