日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Project: Individual Project - Word frequency program----11061192zmx

發布時間:2024/4/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Project: Individual Project - Word frequency program----11061192zmx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

?

Description & Requirements

http://www.cnblogs.com/jiel/p/3311400.html

?

項目時間估計

  理解項目要求:      1小時

  構建項目邏輯:      1小時

  查閱相關資料:      1小時

  編寫&調試程序:      2小時

  樣例測試&功能完善:   ?1小時

  項目效率分析:      1小時

  項目優化:        2小時

  總結&提交:        1小時

?

項目實際完成時間

  實際完成時間很是蛋疼,題目意思不難理解,實現起來也不難,本著先實現功能不考慮時間的原則寫了用c++里的map實現了一下,但發現debug模式下那個速度簡直不能看,但這時已經離截止日期很近了,又有些錯誤,這兩天花在改代碼測數據上的時間很多。。。主要是數據如果不大沒有代表性,如果大了的話又不好調試,很是蛋疼。。。

  寫代碼:n小時

  調試: ? n小時

  測試數據按照我對題目的理解應該是能輸出正確結果的,在release模式下100+M的小說大約用了30s左右,相對于薛大神的12s還是8s簡直就是奇慢無比,詳細的性能分析寫在后面。

?

開發過程

  開發過程其實不能算充滿艱辛,但做無用功的時間太多了。一開始先花了好多時間翻了翻C++Primer看了看容器什么,然后沒看清楚題意沒有遞歸遍歷文件,最后功能實現后再把遞歸遍歷部分加進去導致代碼很亂,接著就是一些不知道從哪里冒出來的問題(運行時間過慢等,估計是我不小心點到了debug模式然后沒有發現),因為這已經花了很多時間了,實在是不耐煩了,就直接重寫了一遍代碼,算是一個階段完成了。但后來和小伙伴們對數據的時候竟然發現對題意理解錯了,最后改了一下覺得應該沒問題了。。。總之整個過程充滿了艱辛,實在是無力了。。

  關于算法實現,我是用一個word_list來存儲單詞,用word_com來存儲單詞統一的形式(如file和File我在word_com里都存成FILE)。最后根據word_com里的頻率將word_list里的單詞排個序,將每個單詞的最小字典序的形式提出來,這時單詞的順序不是按照題目要求的字典序的,而是按照真正字典里的順序,這里再對其進行一次字典序的排序,輸出結果。

性能分析

?由于是直接用map做的,覺得map的insert操作應該比下標創建要快一點,于是在加單詞的時候還加了hash。。其實應該是沒什么區別的(只是優化了復雜度的常數,最后性能分析結果也顯示沒優化多少。。。)

可以看到,100+M的數據跑了30s,而且中間cpu使用率的曲線也很詭異。。

?

占有樣本數比較多的函數是pass,這是用來遍歷文件夾的,里面調用了addword是向map里面加單詞記錄頻率的。

?

?

總結

  真的是學到了很多,主要是調試方面提高了許多心理承受能力。

  由于看了幾遍c++primer里容器的介紹,對c++里各種容器也算有了個詳細的了解,方便以后使用。

  學會了如何遍歷文件夾,以及對一些函數的運行速度有了更深的了解。

  總的來說是一次很不錯的實踐。完

轉載于:https://www.cnblogs.com/z-mac/p/3317104.html

總結

以上是生活随笔為你收集整理的Project: Individual Project - Word frequency program----11061192zmx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。