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

MyMSDN

MyMSDN記錄開發(fā)新知道

編程之美P117學習筆記

編程之美P117 -

  1. 求二進制中1的個數(shù)(P119)
    1. 除以一個2,如果有余,則有一個1,如果沒有余數(shù),則有一個0;
    2. 位運算,循環(huán)右移,當前值&0x01,要么為0,要么為1,求和,即可得1的個數(shù);
    3. 位運算,二進制-1,將會使最靠右的一個1消失,使其右邊那個0(如果存在的話)變1,然后與原數(shù)做&運算,結(jié)果如果非0,則說明還有1存在;
    4. (低效)switch運算,直接給出答案0~255(可求8位二進制);
    5. (神效)將結(jié)果放入int[256]中,直接查表即可,時間復(fù)雜度O(1)
  2. 階乘,給定一個整數(shù)N,那么N的階乘N!末尾有多少個0呢?例如:N=10,N!=3628800,N!的末尾有兩個。(P126)
    1. N!中0的個數(shù)就是10的個數(shù),因為10 = 2×5,由于2可能出現(xiàn)的個數(shù)肯定比5要多很多倍,所以只要計算含有5的個數(shù)即可。所以方法1就是%5(對5取余數(shù));
    2. 原理同方法1,但是計算方式不同,一個數(shù)假設(shè)是250由幾個5相乘呢?

      等價于

      因為54 >250,也就是最后一個加號以后的數(shù)在計算機的整數(shù)除法中均為0,因此只有前三個有效。

      等價于

      它們分別可以解釋為:

      1…5…10…15…25…30……250

      :每間隔5,一共有多少個數(shù),其結(jié)果也就是整除5的結(jié)果

      :每間隔25,一共有多少個數(shù),其結(jié)果也就是整除25的結(jié)果,因為之前這些數(shù)已經(jīng)參與了含有5的計算,因此,現(xiàn)在整除25也就是整除5×5,則表示它有兩個5相乘。

      依此類推,即可得出5的個數(shù)。

  3. 求N!的二進制表示中最低位1的位置。
    1. 同上一題一樣的方式解,把5換成2即可。題目的意思也就是類似,二進制的末尾0表示含有2的個數(shù)(類似上題含有5的個數(shù))所以最后一個1的位置必然等于0的個數(shù)+1;更高效一點的就是上一題需用/5的做法,而這一題用>>=的做法就可以實現(xiàn)/2的效果了,而移位比除法要高效得多;
    2. N!含有質(zhì)因數(shù)2的個數(shù),還等于N減去N的二進制表示中1的數(shù)目。(具體分析見P128)
  4. 1的數(shù)目

    給定一個十進制正整數(shù)N,寫下從1開始,到N的所有整數(shù),然后數(shù)一下其中出現(xiàn)的所有1的個數(shù)。

    1. 遍歷每個數(shù),求每個數(shù)含有1的個數(shù),但效率低,時間復(fù)雜度為O(N*log2N)
    2. P115
  5. 數(shù)組int array[]中,最大的N個數(shù)。
    1. 排序?但是數(shù)字一大肯定不可以。
    2. 快速排序法,時間復(fù)雜度O(N*log2K),因為是求K個數(shù),而快速排序一次可以將數(shù)分成兩組,最佳狀態(tài)是一次就將其分成兩組{K}X{N-K},其中X為參考數(shù)值。
    3. 二分搜索法
    4. 用容量為K的最小堆來做,使堆頂?shù)脑厥荎個數(shù)中最小,然后其他數(shù)進行比較,如果比堆頂?shù)拇缶吞鎿Q最小的數(shù),并重新排序堆,……,最后堆中的數(shù)據(jù)就是所要地數(shù)據(jù)了。
    5. (快,但是受限)將每個數(shù)出現(xiàn)的次數(shù)記錄一下,假設(shè)有3、8、10,每個數(shù)出現(xiàn)的次數(shù)分別是2、7、3,那么假設(shè)K取5,則分別是{10、10、10、8、8}。
  6. 最大公約數(shù)
    1. 輾轉(zhuǎn)相除法
    2. 求差判定法,用減法代替方法1中的取模運算,但增加了迭代次數(shù)
    3. 根據(jù)f(x,y) = f(p*x1,y)=f(x1,y),用移位的方式除2(>>=)

      ?

Math::gcdNum_t Math::Gcd1(Math::gcdNum_t x, Math::gcdNum_t y)

{

????//y, x%y順序不能錯;

????return y ? Gcd1(y, x % y) : x;

}

?

Math::gcdNum_t Math::Gcd2(Math::gcdNum_t x, Math::gcdNum_t y)

{

????//Gcd1相同的方式,但由于x%y計算速度較x-y要慢,但效果相同,所以換用x - y

????// 但用減法和除法不同的是,比如和,%20=10-20=70,也就是-4×=10

????// 也就是說迭代次數(shù)較Gcd1而言通常是增加了。

????return y ? Gcd1(y, x - y) : x;

}

?

Math::gcdNum_t Math::Gcd3(Math::gcdNum_t x, Math::gcdNum_t y)

{

????if(x < y)

????????return Gcd3(y, x);

????if(y == 0)

????????return x;

????else

????{

????????if(IsEven(x))

????????{

????????????if(IsEven(y))

????????????????return (Gcd3(x >> 1, y >> 1) << 1);

????????????else

????????????????return Gcd3(x >> 1, y);

????????}

????????else

????????{

????????????if(IsEven(y))

????????????????return Gcd3(x, y >> 1);

????????????else

????????????????return Gcd3(y, x - y);

????????}

????}

}

?

bool Math::IsEven(Math::gcdNum_t x)

{

????return !(bool)x & 0x0001;

}

posted on 2009-05-03 20:47 volnet 閱讀(276) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


特殊功能
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧洲在线看| 欧美二区在线| 国产精品嫩草影院av蜜臀| 久久久久国产一区二区三区| 亚洲精品激情| 久久精品国产一区二区三区| 夜夜狂射影院欧美极品| 在线播放中文字幕一区| 国产网站欧美日韩免费精品在线观看| 欧美精品v日韩精品v国产精品| 久久久噜噜噜久久| 久久综合亚州| 欧美国产日产韩国视频| 欧美精品1区2区| 欧美日韩午夜激情| 国产喷白浆一区二区三区| 国产欧美日韩另类一区| 加勒比av一区二区| 夜夜爽av福利精品导航| 欧美一区国产在线| 欧美激情精品久久久久久免费印度 | 久久久水蜜桃| 蜜桃av一区二区三区| 亚洲精品乱码久久久久| 亚洲在线观看免费| 免费在线观看精品| 国产亚洲精品成人av久久ww| 亚洲精品日产精品乱码不卡| 一区二区三区四区国产精品| 久久综合给合久久狠狠狠97色69| 亚洲大片一区二区三区| 午夜激情久久久| 国产精品免费看| 亚洲天堂av在线免费| 欧美激情1区| 久久国产精品99国产| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 在线色欧美三级视频| 亚洲天天影视| 一区二区精品在线| 欧美日韩国产综合久久| 亚洲国产高清高潮精品美女| 亚洲欧美成人网| 一区二区三区四区国产| 欧美日韩中文字幕日韩欧美| 亚洲乱码视频| 亚洲午夜精品久久久久久浪潮| 久久久久国产精品www| 欧美成人一区二免费视频软件| 伊人狠狠色j香婷婷综合| 玖玖玖国产精品| 欧美成在线视频| 午夜国产精品影院在线观看| 亚洲一区二区三区欧美| 国产在线观看精品一区二区三区| 欧美主播一区二区三区美女 久久精品人| 夜夜嗨一区二区| 国产真实乱子伦精品视频| 亚洲国产精品999| 国产一二三精品| 欧美日韩一二三四五区| 国产欧美精品一区aⅴ影院| 午夜激情久久久| 免费观看成人| 欧美一二三视频| 欧美综合77777色婷婷| 亚洲人体偷拍| 久久精品中文字幕一区| 日韩视频―中文字幕| 久久久99久久精品女同性| 亚洲一区二区三区四区在线观看 | 一区二区视频免费完整版观看| 欧美激情亚洲视频| 黄色精品一二区| 亚洲一区二区精品| 亚洲视频电影图片偷拍一区| 久久夜色精品国产亚洲aⅴ| 欧美一站二站| 国产一区二区高清| 欧美一级片在线播放| 欧美一区二区三区视频免费| 国产精品xxxxx| 欧美三级第一页| 99国产精品久久久久久久久久| 亚洲黄色成人网| 六月丁香综合| 亚洲电影免费观看高清完整版在线 | 好看不卡的中文字幕| 欧美中文字幕在线播放| 久久九九国产精品怡红院| 国产欧美日韩麻豆91| 久久久999精品| 欧美成人一区在线| 亚洲另类一区二区| 欧美天天视频| 久久久av毛片精品| 99国产精品国产精品久久| 亚洲欧美日韩国产精品| 国产一区二区精品在线观看| 久久久最新网址| 亚洲一区一卡| 亚洲人成亚洲人成在线观看图片 | 欧美一区观看| 一本色道久久综合亚洲精品婷婷| 国产精品福利在线观看| 欧美大片在线观看一区| 欧美一区二区三区免费视频| 亚洲国产第一| 久久久91精品国产一区二区精品| 亚洲国产一二三| 狠狠色狠狠色综合日日tαg| 欧美三级在线播放| 欧美日韩视频在线一区二区| 久久久人成影片一区二区三区观看 | 欧美一级理论片| 亚洲午夜在线观看| 99国产精品久久久久久久久久 | 国产欧美一区二区精品性色| 免费欧美日韩| 欧美激情亚洲综合一区| 蜜乳av另类精品一区二区| 欧美在线观看一区| 欧美在线观看网址综合| 欧美亚洲一区二区在线| 欧美一区三区二区在线观看| 午夜精品久久久久久99热| 欧美一级大片在线观看| 欧美一区二区免费观在线| 欧美一区二区三区四区在线观看 | 亚洲日韩视频| 亚洲精品一区二区三区婷婷月| 亚洲国产成人高清精品| 亚洲精品一区二区三区av| 一区二区激情视频| 久久久久久久久久久久久久一区 | 欧美成人国产一区二区| 久久视频在线视频| 亚洲毛片在线观看.| 亚洲欧美国产另类| 久久精品网址| 国产精品va| 亚洲国产一区二区在线| 亚洲欧美日韩直播| 亚洲二区视频在线| 欧美专区福利在线| 国产精品国产自产拍高清av王其| 国语自产在线不卡| 欧美一区二区三区四区视频| 国产精品美女主播| 亚洲免费观看在线观看| 久久久国产91| 日韩亚洲欧美成人一区| 久久久久一区二区三区四区| 国产精品欧美久久久久无广告| 99精品国产高清一区二区| 欧美国产亚洲视频| 蜜桃精品久久久久久久免费影院| 国产偷自视频区视频一区二区 | 欧美日韩另类在线| 亚洲全部视频| 亚洲国产高清aⅴ视频| 久久综合狠狠| 国产字幕视频一区二区| 久久精品伊人| 欧美成人国产一区二区| 亚洲激情网站免费观看| 亚洲娇小video精品| 欧美日韩专区| 久久精品99| 欧美成年人视频网站| 亚洲美女在线看| 亚洲图片欧洲图片日韩av| 国产九九精品视频| 欧美国产一区视频在线观看| 欧美精品一区在线发布| 午夜在线不卡| 欧美大片免费久久精品三p| 亚洲一区免费看| 毛片一区二区| 午夜精彩国产免费不卡不顿大片| 亚洲午夜免费福利视频| 亚洲高清一区二区三区| 亚洲最新在线视频| 欧美午夜电影完整版| 亚洲欧洲精品一区| 国产视频一区二区三区在线观看| 国产偷国产偷精品高清尤物| 蜜桃久久精品乱码一区二区| 国产精品99一区二区| 欧美不卡在线视频| 国内精品伊人久久久久av影院| 伊大人香蕉综合8在线视| 一区二区高清| 亚洲一区二区三区涩| 欧美不卡一卡二卡免费版| 免费久久99精品国产自| 黄色成人av网站| 久久精品亚洲热| 欧美福利在线| 亚洲国产欧美另类丝袜|