用標準庫對大規模數據排序

30萬3千行數據。

我自己寫了個冒泡,外層循環0.4秒執行一輪,那麼差不多是300000*0.4/(60*60) = 33.3小時。

然後特意跑去同事那邊用他那臺8核2.4G內存24G的超強機器去跑,沒有什麼明顯的效率提升。

然後使用std::sort(),用時4.7秒(我自已的電腦,雙核2.0G),同事的電腦2.1秒。

淚流滿面...

 

另外,最開始想作爲靜態數組,直接對它進行排序、查找,所以用正則表達式預處理好格式。在編譯的時候報錯,好像說調試信息的啥不夠用,然後改成release,編譯,鏈接都能通過,但VS一直停在“生成代碼中...”  遂放棄,而用讀文件的形式。以前做項目的時候,有一個類7000多行代碼(或者比這更多),是處理遊戲腳本的一個非常大的switch case,我們後來加了新的feature,再增加一個新的case,程序就編譯不過了,後來只有把那個switch拆成兩個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章