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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Project: Individual Project - Word frequency program----11061192zmx 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

Description & Requirements

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

?

項(xiàng)目時(shí)間估計(jì)

  理解項(xiàng)目要求:      1小時(shí)

  構(gòu)建項(xiàng)目邏輯:      1小時(shí)

  查閱相關(guān)資料:      1小時(shí)

  編寫&調(diào)試程序:      2小時(shí)

  樣例測(cè)試&功能完善:   ?1小時(shí)

  項(xiàng)目效率分析:      1小時(shí)

  項(xiàng)目?jī)?yōu)化:        2小時(shí)

  總結(jié)&提交:        1小時(shí)

?

項(xiàng)目實(shí)際完成時(shí)間

  實(shí)際完成時(shí)間很是蛋疼,題目意思不難理解,實(shí)現(xiàn)起來(lái)也不難,本著先實(shí)現(xiàn)功能不考慮時(shí)間的原則寫了用c++里的map實(shí)現(xiàn)了一下,但發(fā)現(xiàn)debug模式下那個(gè)速度簡(jiǎn)直不能看,但這時(shí)已經(jīng)離截止日期很近了,又有些錯(cuò)誤,這兩天花在改代碼測(cè)數(shù)據(jù)上的時(shí)間很多。。。主要是數(shù)據(jù)如果不大沒(méi)有代表性,如果大了的話又不好調(diào)試,很是蛋疼。。。

  寫代碼:n小時(shí)

  調(diào)試: ? n小時(shí)

  測(cè)試數(shù)據(jù)按照我對(duì)題目的理解應(yīng)該是能輸出正確結(jié)果的,在release模式下100+M的小說(shuō)大約用了30s左右,相對(duì)于薛大神的12s還是8s簡(jiǎn)直就是奇慢無(wú)比,詳細(xì)的性能分析寫在后面。

?

開發(fā)過(guò)程

  開發(fā)過(guò)程其實(shí)不能算充滿艱辛,但做無(wú)用功的時(shí)間太多了。一開始先花了好多時(shí)間翻了翻C++Primer看了看容器什么,然后沒(méi)看清楚題意沒(méi)有遞歸遍歷文件,最后功能實(shí)現(xiàn)后再把遞歸遍歷部分加進(jìn)去導(dǎo)致代碼很亂,接著就是一些不知道從哪里冒出來(lái)的問(wèn)題(運(yùn)行時(shí)間過(guò)慢等,估計(jì)是我不小心點(diǎn)到了debug模式然后沒(méi)有發(fā)現(xiàn)),因?yàn)檫@已經(jīng)花了很多時(shí)間了,實(shí)在是不耐煩了,就直接重寫了一遍代碼,算是一個(gè)階段完成了。但后來(lái)和小伙伴們對(duì)數(shù)據(jù)的時(shí)候竟然發(fā)現(xiàn)對(duì)題意理解錯(cuò)了,最后改了一下覺(jué)得應(yīng)該沒(méi)問(wèn)題了。。。總之整個(gè)過(guò)程充滿了艱辛,實(shí)在是無(wú)力了。。

  關(guān)于算法實(shí)現(xiàn),我是用一個(gè)word_list來(lái)存儲(chǔ)單詞,用word_com來(lái)存儲(chǔ)單詞統(tǒng)一的形式(如file和File我在word_com里都存成FILE)。最后根據(jù)word_com里的頻率將word_list里的單詞排個(gè)序,將每個(gè)單詞的最小字典序的形式提出來(lái),這時(shí)單詞的順序不是按照題目要求的字典序的,而是按照真正字典里的順序,這里再對(duì)其進(jìn)行一次字典序的排序,輸出結(jié)果。

性能分析

?由于是直接用map做的,覺(jué)得map的insert操作應(yīng)該比下標(biāo)創(chuàng)建要快一點(diǎn),于是在加單詞的時(shí)候還加了hash。。其實(shí)應(yīng)該是沒(méi)什么區(qū)別的(只是優(yōu)化了復(fù)雜度的常數(shù),最后性能分析結(jié)果也顯示沒(méi)優(yōu)化多少。。。)

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

?

占有樣本數(shù)比較多的函數(shù)是pass,這是用來(lái)遍歷文件夾的,里面調(diào)用了addword是向map里面加單詞記錄頻率的。

?

?

總結(jié)

  真的是學(xué)到了很多,主要是調(diào)試方面提高了許多心理承受能力。

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

  學(xué)會(huì)了如何遍歷文件夾,以及對(duì)一些函數(shù)的運(yùn)行速度有了更深的了解。

  總的來(lái)說(shuō)是一次很不錯(cuò)的實(shí)踐。完

轉(zhuǎn)載于:https://www.cnblogs.com/z-mac/p/3317104.html

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。