<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
    主站蜘蛛池模板: 亚洲人成在线播放| 亚洲一级在线观看| h视频免费高清在线观看| 国产在线观看免费完整版中文版 | 国产一级高青免费| 亚洲区不卡顿区在线观看| 国产国产人免费人成成免视频| 无码毛片一区二区三区视频免费播放 | 成人无码a级毛片免费| 亚洲欧洲精品成人久久曰影片| 亚洲AV成人精品网站在线播放| 亚洲国产成人99精品激情在线| 九九久久国产精品免费热6| 亚洲国产成人久久综合野外| 精品人妻系列无码人妻免费视频 | 国产AV无码专区亚洲AV漫画| 国产成人无码免费看片软件| 亚洲成AV人片一区二区| 午夜无码A级毛片免费视频| 亚洲日本乱码一区二区在线二产线 | 亚洲乱码国产一区三区| 国产免费AV片在线观看| 亚洲精品在线观看视频| 国产1024精品视频专区免费| 亚洲精品无码人妻无码 | 日韩a级毛片免费视频| 九九九精品视频免费| 亚洲精品无码成人片久久 | 九九99热免费最新版| 91精品国产亚洲爽啪在线影院| 日本特黄特色AAA大片免费| 国产亚洲美女精品久久久久狼| 福利片免费一区二区三区| 国产AV无码专区亚洲AV漫画| 成人免费的性色视频| 亚洲AV无码一区二区三区性色| 久久不见久久见中文字幕免费| 久久精品国产亚洲AV果冻传媒| 欧亚一级毛片免费看| 亚洲国产精品一区第二页| 拨牐拨牐x8免费|