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

隨筆-80  評(píng)論-24  文章-0  trackbacks-0
這道看似非常簡(jiǎn)單的題其實(shí)有很多奇妙的解法,看到網(wǎng)上一些神牛的解法實(shí)在是嘆為觀止!
不過我們還是按部就班的來:
1、最容易想到的方法

 1 int count_one(unsigned int x) {
 2   int count = 0;
 3   while (x) {
 4     if (x & 1 == 1) {
 5       count++;
 6     }   
 7     x >>= 1;
 8   }
 9   return count;
10 }

沒有多少可以講的,非常簡(jiǎn)單,不過這樣做會(huì)發(fā)現(xiàn),該算法時(shí)間復(fù)雜度是O(logN)的

2、為了優(yōu)化上面算法,盡量做到降低時(shí)間復(fù)雜度,但是O(logN)的復(fù)雜度再降低會(huì)是什么樣子呢?O(1)?那就直接建索引?但是畢竟32位整數(shù)想要建索引的話那內(nèi)存耗費(fèi)就太大了,所以我們先看看能不能使得復(fù)雜度將到O(m),其中m是x中1的個(gè)數(shù),那么怎么樣才能每進(jìn)行一次循環(huán)x的1的個(gè)數(shù)就減1呢?比較難想到的地方就是它了:x & (x - 1),比如x為12,即1100b,如果進(jìn)行一次x = x & (x - 1)運(yùn)算則x的值為1000b。因此代碼如下:

1 int count_one(unsigned int x) {
2   int count = 0;
3   while (x) {
4     count++;
5     x &= x - 1;
6   }
7   return count;
8 }

上面的代碼看似和方法1中的代碼相似,但是每次循環(huán)使問題減小的規(guī)模是不一樣的。
3、該方法是從網(wǎng)上借鑒的,確實(shí)不太容易想到,非常的巧妙,采用典型的分治思想:比如我們有一個(gè)數(shù)字11111111b,基礎(chǔ)情況是先計(jì)算每一位的1的個(gè)數(shù)(這個(gè)步驟可以省略,類似歸并排序的基礎(chǔ)情況,對(duì)一個(gè)元素的排序是不需要排);再歸并,計(jì)算相鄰兩位的1的個(gè)數(shù),即第0位和第1位的1的個(gè)數(shù)為2個(gè),第2位和第3位的1的個(gè)數(shù)為2個(gè),...,第6位和第7位的1的個(gè)數(shù)為2個(gè);這樣得到10 10 10 10b,然后再歸并,計(jì)算第0,1,2,3位的1的個(gè)數(shù),計(jì)算第4,5,6,7位的1的個(gè)數(shù),得到0100 0100b;然后再歸并得到第0,1,2,3,4,5,6,7位的1的個(gè)數(shù)為1000b。上面分析的是8位二進(jìn)制情況,對(duì)于32位二進(jìn)制,同理,只需要繼續(xù)歸并即可,代碼如下:

1 int count_one(unsigned int x) {
2   x = (x & 0x55555555) + ((x >> 1) & 0x55555555);
3   x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
4   x = (x & 0x0f0f0f0f) + ((x >> 4) & 0x0f0f0f0f);
5   x = (x & 0x00ff00ff) + ((x >> 8) & 0x00ff00ff);
6   x = (x & 0x0000ffff) + ((x >> 16) & 0x0000ffff);
7   return x;
8 }

對(duì)于方法3,時(shí)間復(fù)雜度可以認(rèn)為是O(1)的,不過真實(shí)速度和方法2的pk我確實(shí)沒有比較過,因?yàn)槲覀円蟮臄?shù)的位數(shù)總不會(huì)太大,所以時(shí)間差距不會(huì)太多,甚至在這種小規(guī)模位數(shù)的情況下會(huì)出現(xiàn)相反結(jié)果,不過方法3的思想實(shí)在是巧妙,如果沒有對(duì)分治算法的透徹理解,是很難想到用分治去解決該題的

領(lǐng)教了!
posted on 2012-09-04 10:52 myjfm 閱讀(643) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 算法基礎(chǔ)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美大片一区| 国产美女精品视频免费观看| 亚洲视频香蕉人妖| 国产欧美日韩视频在线观看| 免费久久99精品国产| 翔田千里一区二区| 亚洲一区二区免费看| 一区二区冒白浆视频| 亚洲麻豆国产自偷在线| 亚洲高清视频在线| 久久―日本道色综合久久| 欧美一区二区日韩| 欧美在线网址| 亚洲国产成人在线| 亚洲欧洲日本mm| 久久先锋资源| 日韩视频在线免费观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产目拍亚洲精品99久久精品 | 欧美亚洲免费在线| 亚洲性视频网站| 久久久久久久欧美精品| 欧美福利电影在线观看| 日韩视频精品在线| 亚洲一二三区在线观看| 亚洲欧美一区二区视频| 久久精品国产久精国产爱| 免费一级欧美在线大片| 欧美日韩在线视频观看| 91久久精品国产91久久性色| 亚洲婷婷在线| 亚洲欧洲一区二区在线播放| 亚洲另类一区二区| 美女诱惑一区| 亚洲一区二区在线| 久久综合伊人77777麻豆| 9人人澡人人爽人人精品| 久久综合九色综合网站| 亚洲靠逼com| 日韩视频在线你懂得| 欧美成人免费视频| 欧美一区成人| 国产亚洲福利社区一区| 久久www成人_看片免费不卡| 一区二区av在线| 欧美日韩国语| 毛片基地黄久久久久久天堂| 国产欧美精品va在线观看| 中文国产成人精品久久一| 一本色道久久综合亚洲精品高清| 久久久久久9| 亚洲国产欧美一区| 一区二区黄色| 国产在线视频欧美一区二区三区| 久久国产精品黑丝| 欧美中文字幕在线播放| 精品成人一区二区三区| 亚洲大片av| 欧美色精品天天在线观看视频| 亚洲一区二区三区在线看| 亚洲网站在线播放| 亚洲国产美女| 欧美一区国产一区| 亚洲国产高清一区二区三区| 亚洲精品中文字幕在线观看| 欧美午夜一区二区三区免费大片| 性欧美8khd高清极品| 母乳一区在线观看| 久久精品亚洲一区| 欧美日韩在线播放三区四区| 久久婷婷久久一区二区三区| 欧美日韩亚洲精品内裤| 免费成人av在线| 国产精品揄拍500视频| 亚洲人被黑人高潮完整版| 在线日韩电影| 久久久国产精品一区二区中文 | 免费看av成人| 久久久久久久久岛国免费| 欧美日韩综合久久| 亚洲第一页自拍| 午夜精品影院在线观看| 销魂美女一区二区三区视频在线| 免费成人高清视频| 免费观看日韩| 亚洲日本va午夜在线影院| 欧美成人网在线| 一本久久综合亚洲鲁鲁五月天| 日韩亚洲一区二区| 国产精品国产馆在线真实露脸| 亚洲黄色尤物视频| 99国产精品久久久久久久久久 | 免费在线看一区| 亚洲美女精品一区| 一区二区三区不卡视频在线观看| 欧美精品七区| 篠田优中文在线播放第一区| 麻豆精品精华液| 一区二区高清视频在线观看| 欧美午夜免费电影| 欧美一区二区三区四区在线观看| 美女亚洲精品| 亚洲一区二区三区在线视频| 性娇小13――14欧美| 亚洲无亚洲人成网站77777| 性久久久久久| 日韩午夜电影在线观看| 国产精品福利在线| 欧美国产综合视频| 老妇喷水一区二区三区| 亚洲欧美日韩另类| 亚洲美女性视频| 欧美一区二区三区四区夜夜大片| 在线播放国产一区中文字幕剧情欧美| 欧美激情一区二区三级高清视频 | 欧美成人激情视频免费观看| 亚洲视频在线一区| 你懂的网址国产 欧美| 欧美午夜片在线观看| 午夜精品久久久久久久99樱桃 | 国产精品亚洲美女av网站| 国产欧美日韩另类一区| 亚洲伊人伊色伊影伊综合网| 小处雏高清一区二区三区| 亚洲少妇在线| 国产精品99久久久久久白浆小说 | 99视频在线精品国自产拍免费观看 | 欧美日韩国产成人| 一区二区激情| 亚洲综合99| 中国日韩欧美久久久久久久久| 亚洲福利视频一区| 欧美视频一区二区三区…| 亚洲精品乱码久久久久久日本蜜臀| 美腿丝袜亚洲色图| 欧美亚洲系列| 欧美伦理在线观看| 91久久精品网| 欧美激情一区二区三区在线视频观看 | 欧美成人蜜桃| 国产一区二区三区高清在线观看| 亚洲一区尤物| 亚洲国产99精品国自产| 香蕉成人久久| 在线观看欧美| 欧美电影在线| 亚洲韩国一区二区三区| 亚洲欧美大片| 久久人人超碰| 亚洲中无吗在线| 亚洲国产精品va在线观看黑人| 久久久久久久久岛国免费| 亚洲精品久久久久久久久久久久 | 久久人人97超碰人人澡爱香蕉| 国产亚洲精品aa| 欧美激情一区二区三区不卡| 小辣椒精品导航| 亚洲国产精品久久人人爱蜜臀| 亚洲免费福利视频| 国产精品国产三级国产aⅴ浪潮| 香蕉av福利精品导航| 亚洲一二三区在线| 欧美二区不卡| 蜜臀av性久久久久蜜臀aⅴ| 日韩一级不卡| 亚洲动漫精品| 国产亚洲欧美在线| 国内一区二区在线视频观看| 海角社区69精品视频| 久久精品国产在热久久| 免费在线成人av| 久久综合精品国产一区二区三区| 午夜免费久久久久| 亚洲免费观看高清完整版在线观看熊 | 久久在线精品| 黄色一区二区在线| 亚洲国产va精品久久久不卡综合| 欧美性色aⅴ视频一区日韩精品| 欧美成人午夜影院| 国产精品av久久久久久麻豆网| 在线观看91精品国产入口| 久久久精品国产99久久精品芒果| 亚洲一区二区三区在线播放| 久久国产主播精品| 亚洲精品一二三| 亚洲一区日韩在线| 欧美一区二区三区另类| 久久国产精品色婷婷| 欧美精品在线观看91| 狠狠综合久久av一区二区老牛| 久久久www免费人成黑人精品| 噜噜噜久久亚洲精品国产品小说| 蘑菇福利视频一区播放| 99精品视频免费观看| 欧美~级网站不卡| 国产精品欧美久久| 亚洲一区二区综合| 亚洲欧美清纯在线制服| 老司机一区二区三区| 欧美午夜不卡影院在线观看完整版免费|