<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 403, comments - 310, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    求n個32位無符號整數中異或后值最大的兩個數

    Posted on 2008-04-10 00:33 ZelluX 閱讀(4655) 評論(5)  編輯  收藏 所屬分類: Algorithm

    問題:
    給定n個32位無符號整數,求出其中異或結果最大的兩個整數。

    例如
    給定1, 2, 3, 4, 0xFFFFFFFE
    1 XOR 0xFFFFFFFE的結果最大

    這題網上討論還不少,O(n logn)的方法很容易想,按二進制值從高到低劃分就行了。
    這里有一個思路很清晰的O(n)的做法,用了字典樹
    http://discuss.joelonsoftware.com/default.asp?interview.11.614716

    首先建立一棵深度為32的二叉樹,結點值為0/1,每個整數對應其中的一個葉子結點,這樣一共有n個葉子。

    接下來,對于任一個整數x,先取反,m = ~x
    在二叉樹中找到和x異或后值最大的數(根據二進制值的各位從樹根往下跑就行了,不過給出的代碼有點問題)
    找這個值在O(1)內就能完成,然后求出最大的

    O(n)


    評論

    # re: 求n個32位無符號整數中異或后值最大的兩個數  回復  更多評論   

    2008-04-12 10:51 by 豆抓搜索
    學習..http://www.douzhua.com

    # re: 求n個32位無符號整數中異或后值最大的兩個數  回復  更多評論   

    2008-05-04 10:42 by ZelluX
    發現這個復雜度其實有問題,因為32位無符號整數最多也就2^32次個,樹的深度自然是個常數級別的,囧

    # re: 求n個32位無符號整數中異或后值最大的兩個數[未登錄]  回復  更多評論   

    2008-10-28 14:09 by dave
    ZelluX,請你重新解釋下O(n logn)和Trie的解法,或者提供相關鏈接。給出的鏈接已經失效。非常感謝。

    # re: 求n個32位無符號整數中異或后值最大的兩個數[未登錄]  回復  更多評論   

    2008-10-28 20:09 by dave
    已經明白Trie的解法,請博主說說O(n logn)的方法吧。

    # re: 求n個32位無符號整數中異或后值最大的兩個數  回復  更多評論   

    2008-12-05 17:00 by wzcsoft
    字典樹的方法實際上是O(n*k) k=32

    實際上不一定比O(nlgn)好,lgn往往小于32
    主站蜘蛛池模板: 欧洲人成在线免费| 99久久国产免费中文无字幕| 成人精品国产亚洲欧洲| 老子影院午夜伦不卡亚洲| 成人免费a级毛片| www亚洲精品少妇裸乳一区二区| 亚洲熟伦熟女新五十路熟妇| 亚洲狠狠综合久久| 亚洲性无码一区二区三区| 一级特黄录像免费播放中文版 | 亚洲成aⅴ人片久青草影院按摩| WWW国产成人免费观看视频| av无码久久久久不卡免费网站| 亚洲AV无码一区二区三区在线观看| 久久亚洲精品无码VA大香大香| 精品久久久久久亚洲中文字幕| 免费国产a国产片高清| 亚洲网址在线观看你懂的| 97国产在线公开免费观看| 亚洲精品网站在线观看不卡无广告 | 日本视频免费在线| 久久综合九九亚洲一区| 激情婷婷成人亚洲综合| MM131亚洲国产美女久久| 亚洲免费人成在线视频观看| 免费一级一片一毛片| 精品一区二区三区高清免费观看| 成人a视频片在线观看免费| 西西人体44rt高清亚洲| 一个人看的hd免费视频| 久久亚洲精品成人| 在线观看免费人成视频色9| 亚洲mv国产精品mv日本mv| 国产精品免费无遮挡无码永久视频| 亚洲另类古典武侠| 精品女同一区二区三区免费站| 亚洲国产精品一区二区久久| 成年女人看片免费视频播放器| 亚洲国产激情在线一区| AV无码免费永久在线观看| 日本一区二区在线免费观看 |