麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

深入第K大數問題以及算法概要的詳解

2020-01-26 16:08:51
字體:
來源:轉載
供稿:網友

解法1: 我們可以對這個亂序數組按照從大到小先行排序,然后取出前k大,總的時間復雜度為O(n*logn + k)。

解法2: 利用選擇排序或交互排序,K次選擇后即可得到第k大的數。總的時間復雜度為O(n*k)

解法3: 利用快速排序的思想,從數組S中隨機找出一個元素X,把數組分為兩部分Sa和Sb。Sa中的元素大于等于X,Sb中元素小于X。這時有兩種情況:
1. Sa中元素的個數小于k,則Sb中的第k-|Sa|個元素即為第k大數;
2. Sa中元素的個數大于等于k,則返回Sa中的第k大數。時間復雜度近似為O(n)

解法4: 二分[Smin,Smax]查找結果X,統計X在數組中出現,且整個數組中比X大的數目為k-1的數即為第k大數。時間復雜度平均情況為O(n*logn)

解法5:用O(4*n)的方法對原數組建最大堆,然后pop出k次即可。時間復雜度為O(4*n + k*logn)

解法6:維護一個k大小的最小堆,對于數組中的每一個元素判斷與堆頂的大小,若堆頂較大,則不管,否則,彈出堆頂,將當前值插入到堆中。時間復雜度O(n * logk)

解法7:利用hash保存數組中元素Si出現的次數,利用計數排序的思想,線性從大到小掃描過程中,前面有k-1個數則為第k大數,平均情況下時間復雜度O(n)

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 精品99在线视频 | 日韩视频一区在线 | 男女做性免费网站 | 免费看欧美黑人毛片 | 久久久久久久久久网站 | 欧美精品18 | 在线观看91精品 | 久久精品亚洲欧美日韩精品中文字幕 | 九九热在线精品视频 | 黄色毛片一级 | 欧美一级电影网 | 久久嗨 | 久久精品国产清自在天天线 | 玩偶姐姐在线观看免费 | 欧美高清一级片 | h视频在线免费看 | 法国性经典xxxhd | 国产成人强伦免费视频网站 | 日本黄色免费片 | 久久精品99国产国产精 | 无码av女优 | 色婷婷tv | 久久久久久久久久久久久久av | 亚洲午夜精选 | 最新在线中文字幕 | 久久久久国 | 成人av一区二区免费播放 | 久久精品探花 | av成人在线免费观看 | 黄色成人在线播放 | 日本在线高清 | 欧美成人一区二区三区电影 | 久久亚洲精品国产 | 7777视频| 欧美日韩免费在线观看视频 | 91看片王 | fc2国产成人免费视频 | 黄视频免费观看 | 国产羞羞视频在线观看免费应用 | 蜜桃欧美性大片免费视频 | 韩国十九禁高潮床戏在线观看 |