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

          O(n)時間求出最小的k個數

          Posted on 2007-09-04 18:55 ZelluX 閱讀(481) 評論(0)  編輯  收藏 所屬分類: Algorithm
          一種做法是用最差情況下復雜度也是O(n)的算法求出第k大的數,然后把這個數作為pivot進行一次paritition,再排序該數左邊的部分。復雜度為O(n + klgk)

          http://en.wikipedia.org/wiki/Selection_algorithm

          另外,CLRS上Selection in worst-case linear time算法實際上對in expected linear time在選數時做了一個優化,這樣在最差情況下也有O(n)的復雜度了,實際應用中沒什么用 (thx to Peter大牛 ^_^)
          主站蜘蛛池模板: 德昌县| 松江区| 沂南县| 金华市| 嘉荫县| 抚远县| 常熟市| 洪湖市| 济宁市| 高唐县| 定远县| 沽源县| 安塞县| 华容县| 南阳市| 瑞安市| 吴江市| 梓潼县| 桐城市| 二手房| 腾冲县| 台中市| 佛冈县| 额敏县| 广饶县| 徐闻县| 东丽区| 乌兰察布市| 永定县| 武隆县| 汶川县| 偏关县| 郧西县| 西华县| 兴宁市| 镇巴县| 南康市| 永春县| 恭城| 朝阳区| 广汉市|