青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

雁過無痕

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::

《編程之美》讀書筆記22:    1.16  24點游戲(補充)

 

給定n個數(shù),能否只通過加減乘除計算得到24

書上給出的最后一種解法,通過使用集合記錄中間結果來減少冗余計算。本以為,程序會占用大量的內存,用一個極端的例子(13, 773, 28, 98, 731, 1357,973572467個數(shù))測試了一下實現(xiàn)的程序,發(fā)現(xiàn)程序竟然占用了1G以上的內存(無論集合的實現(xiàn)采用STL中的set還是unordered_set),但后來,取7個均在113之間的數(shù),再重新測試了下發(fā)現(xiàn),程序所占用的內存比想像的小的多,也就幾兆。

對數(shù)值都在113之間的n個數(shù)的所有組合進行判斷。在n等于4時,實現(xiàn)的程序約過1秒就給出了結果,而n等于5時,程序要運行58秒,效率實在差,可以通過這幾方面優(yōu)化:

① 保存每個集合的子集合的編號:

對給定的n,共有12^n – 1個集合,每個集合的子集合編號是固定的,但原程序每計算一個n個數(shù)的組合,都要對這些子集合編號計算一遍,可以保存每個集合的子集合編號,減少大量的重復計算。

② 改進計算子集合編號的算法:

原程序的算法的時間復雜度是O(4^n),在n較大時,相當慢。

③ 對最后一個集合是否含有24的判斷:

原程序要遍歷該集合所有的元素,效率比較差,可以考慮,在將兩個集合合并到該集合時,只對取出的兩個元素的計算結果是否為24進行判斷,這樣不僅省去最后的遍歷,而且不用將結果插入到最后的那個集合中,省去了大量操作。

 

采用①和③兩種改進方法后,程序運行時間由原來的58秒縮短到了14秒,但這還不能讓人滿意。對2,3,5,6,85個數(shù),如果用書上的第一種方法,可以只調用4次函數(shù)就可以得到結果:2+3+5+6+8=24,但用集合的方法來處理,卻要對所有的集合進行子集合合并后才能給出結果,這造成了效率極差,可以這樣改進該算法:

初始有n個集合:每一次任意取出2個集合,合并后,放回去,再取出任意2個集合,重復前面的操作,直到只剩下一個集合為止。

例如:初始有5個數(shù),把這5個數(shù)分別放到5個集合,并分別編號為:124816。任意取出2個集合,假設為14,將14合并,得到編號為5(=1+4)的集合,剩下的集合為:52168,再取出2個,假設為58,合并后,得到13216,再取2個,假設為1316,合并后得到292,當剩下2個集合時,可以直接對這兩個集合間的的計算結果是否為24進行判斷,直接得出結果,省去不必要的合并(合并后再判斷是否有元素近似等于24,程序運行時間8s多,而直接對計算結果判斷,程序只要運行1s多)。

優(yōu)化后的程序,只要運行1s多。但其效率還是不如書上的第一種方法的改進版,仔細想想,n越大,集合的元素也就越多,兩個集合之間的合并,就越耗時間。而且采用集合保存中間結果,表面上減少了重復狀態(tài),會提高效率,但實際上,由于采用了集合,就多了很多不必要的計算,(比如,對2+3+5+6+8=24,最少只要4次計算就能得出結果,采用集合合并后,則要計算幾百次(約為6^4)),再加上實現(xiàn)集合所采用的數(shù)據(jù)結構的開銷,效率高不了。

24_set_1



24_set_2.cpp


24_set_3.cpp
posted on 2010-08-15 23:35 flyinghearts 閱讀(984) 評論(0)  編輯 收藏 引用 所屬分類: 算法編程之美C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产一区二区三区在线免费观看| 午夜久久一区| 午夜精品久久久久| 久久综合国产精品| 亚洲日本在线视频观看| 亚洲影院在线观看| 美女诱惑一区| 国产精品网站视频| 91久久精品国产91久久性色tv| 亚洲一区自拍| 欧美a级一区二区| 亚洲视频在线观看网站| 久久综合福利| 国产九九精品视频| 亚洲靠逼com| 久久久一二三| 一区二区欧美精品| 免费久久99精品国产自| 国产精品一区在线观看| 亚洲乱码国产乱码精品精| 久久精品一区蜜桃臀影院| 亚洲精品国产精品久久清纯直播 | 欧美三级电影一区| 黄色欧美日韩| 午夜国产一区| 日韩午夜电影| 欧美a级一区二区| 国产主播精品| 亚洲欧美日韩中文播放| 91久久精品国产91久久| 久久精品在线免费观看| 国产精品一区久久| 在线亚洲欧美视频| 亚洲国产第一页| 久久精品国产清自在天天线| 国产精品久久久久久久免费软件 | 亚洲精品一区在线观看香蕉| 久久久久久久久久久成人| 国产精品一区二区欧美| 中文在线资源观看网站视频免费不卡 | 亚洲精品视频在线播放| 老司机午夜精品视频在线观看| 亚洲香蕉成视频在线观看| 欧美精品日韩综合在线| 亚洲人体影院| 免费在线成人av| 久久国产高清| 国产亚洲精品美女| 欧美一区二区三区另类| 亚洲一二三区精品| 欧美三区在线视频| 中国成人在线视频| 亚洲三级国产| 欧美久色视频| 99在线观看免费视频精品观看| 亚洲国产精品激情在线观看| 免费不卡亚洲欧美| 亚洲欧洲综合| 亚洲第一精品电影| 欧美va亚洲va日韩∨a综合色| 亚洲高清资源综合久久精品| 另类欧美日韩国产在线| 久久久精品免费视频| 黄色亚洲网站| 欧美www在线| 麻豆精品视频| 亚洲精品国产精品乱码不99| 亚洲国产精品一区制服丝袜| 欧美国产精品一区| 9人人澡人人爽人人精品| 亚洲精品美女在线观看| 欧美日韩一级片在线观看| 亚洲一二三区在线| 亚洲一区二区在线免费观看| 国产精品每日更新| 欧美在线免费观看| 久久成人综合网| 在线看日韩av| 亚洲国产欧美一区二区三区久久| 欧美黄色精品| 宅男噜噜噜66一区二区66| 亚洲亚洲精品三区日韩精品在线视频| 国产精品一区二区视频| 久久久久久久综合日本| 久久综合久久88| 一本久道久久综合中文字幕| 一本一道久久综合狠狠老精东影业| 国产精品久久看| 久久久久亚洲综合| 免费成人黄色| 亚洲午夜视频在线观看| 亚洲欧美久久| 在线成人小视频| 亚洲精品国产精品久久清纯直播| 国产精品www994| 久久久久久97三级| 男人的天堂亚洲在线| 亚洲一区精品电影| 欧美一区二区三区日韩| 亚洲国产成人久久综合一区| 亚洲精品一区二区三区福利| 国产精品入口| 鲁大师成人一区二区三区| 欧美精品 日韩| 欧美一区二区女人| 美女图片一区二区| 亚洲欧美日本国产有色| 久久久久九九视频| 在线视频精品一区| 久久国产精品久久久久久久久久| 亚洲精品一区二区三区樱花| 亚洲午夜精品国产| 亚洲国产乱码最新视频| 亚洲视频一区| 亚洲国产日韩欧美在线99 | 性色av一区二区三区在线观看| 久久久国产精品一区二区三区| 99国产麻豆精品| 欧美夜福利tv在线| 9久re热视频在线精品| 欧美在线欧美在线| 99热免费精品| 久久精品人人爽| 亚洲永久免费视频| 米奇777在线欧美播放| 先锋影音国产精品| 欧美α欧美αv大片| 久久精品99| 欧美日韩黄色大片| 欧美成年人在线观看| 国产精品亚发布| 亚洲欧洲精品一区二区精品久久久| 国产日韩在线不卡| 99精品视频免费| 亚洲欧洲综合| 久久久精彩视频| 欧美在线3区| 欧美视频在线观看 亚洲欧| 牛牛国产精品| 国产专区欧美精品| 亚洲一区在线直播| 在线亚洲免费| 欧美成人a视频| 蜜臀va亚洲va欧美va天堂| 国产欧美日本一区二区三区| 99re66热这里只有精品4| 亚洲第一在线综合在线| 欧美一区二区三区免费看 | 国产一区二区三区久久精品| 9色porny自拍视频一区二区| 亚洲激情欧美激情| 久久久999| 久久精品一区中文字幕| 国产精品伦子伦免费视频| 亚洲精品资源| 亚洲免费观看在线视频| 免费亚洲婷婷| 欧美成人免费全部| 精品999久久久| 欧美中文在线观看| 久久精品国产第一区二区三区最新章节 | 欧美国产亚洲视频| 在线日韩成人| 久久男女视频| 免费观看成人www动漫视频| 国产在线欧美日韩| 欧美一级久久久久久久大片| 性做久久久久久免费观看欧美| 欧美先锋影音| 一区二区三区精品视频| 亚洲综合色在线| 国产精品久久久久久福利一牛影视| 亚洲毛片一区二区| 亚洲天堂久久| 国产精品成人在线观看| 在线天堂一区av电影| 亚洲欧美国产一区二区三区| 欧美午夜片在线观看| 亚洲午夜免费视频| 欧美一区二区大片| 国产一区二区三区电影在线观看| 欧美伊人久久久久久久久影院| 久久久国产91| 在线观看一区| 欧美电影在线| 99在线观看免费视频精品观看| 中国亚洲黄色| 国产精品亚洲激情 | 国产日韩成人精品| 久久大逼视频| 欧美高清视频www夜色资源网| 亚洲肉体裸体xxxx137| 欧美理论视频| 亚洲一区二区三区免费观看 | 国内成人自拍视频| 久久综合久久久久88| 亚洲欧洲精品一区二区| 亚洲亚洲精品三区日韩精品在线视频| 国产精品久久久久久亚洲毛片| 午夜精彩国产免费不卡不顿大片|