原文:經典算法總結之線性時間做選擇

問題: 輸入:一個包含n個 不同的 數的集合A和一個數i, lt I lt n。 輸出:元素x A, 它恰大於A中其他的I 個元素 即求第k小數 。 本博文中尋找最大的K個數 TOP K算法 這篇文章也用了本文中的算法,大家可以參考。 三種算法: 直接排序,輸出數組第i個元素即可, 時間復雜度為O nlgn 這種算法,利用 快排的或者類似二分 的思想,每次以樞紐為界,分兩邊,每次只需處理一邊即可 ...

2012-08-17 10:15 0 7378 推薦指數:

查看詳情

線性時間選擇算法

在一個由 n 個元素組成的集合中,第 i 個順序統計量(order statistic)是該集合中第 i 小的元素。也就是說,最小值是第 1 個順序統計量(i = 1),最大值是第 n 個順序統計量( ...

Thu Jul 24 06:42:00 CST 2014 1 5974
線性時間選擇算法

線性時間選擇算法 顧名思義,“線性時間選擇”就是“選擇問題”的“線性時間算法。 1. 選擇問題 元素選擇問題:給定一個能夠線性排序的集合(該集合中有 n 個元素)和 一個整數 k(\(1 \le k \le n\)) ,找出這 n 個元素中第 k 小的元素。 時間下界 ...

Tue Mar 24 07:08:00 CST 2020 2 4840
選擇中位數-線性時間算法

  本章繼續講一些關於奇淫技巧(算法啦)的做法,對於一個無序數組,我們如何找到其中位數呢?   首先回顧一下中位數的概念:是按順序排列的一組數據中居於中間位置的數。   1,當前的先決條件是無序數組,那根據原理可以很快想到一種解法,對數組進行遍歷,每次找出其最大值、最小值,最終殘留的一位或兩位 ...

Sun Jan 19 22:40:00 CST 2020 0 1272
最壞情況為線性時間選擇算法

算法select可以確認一個有n>1個不同元素的輸入數組中第i小的元素。(如果n=1,則select只返回它的唯一輸入數值作為第i小的元素。) 1.將輸入數組的n個元素划分為n/5(向下取整)組,每組5個元素,則至多只有一組由剩下的n mod 5個元素組成。 2.尋找這n/5(向上取整 ...

Sat Sep 02 22:59:00 CST 2017 0 1194
舍伍德算法線性時間選擇問題

一.概念引入 設A是一個確定性算法,當它的輸入實例為x時所需的計算時間記為tA(x)。設Xn是算法A的輸入規模為n的實例的全體,則當問題的輸入規模為n時,算法A所需的平均時間為。這顯然不能排除存在x∈Xn使得的可能性。希望獲得一個隨機化算法B,使得對問題的輸入規模為n的每一個實例 ...

Fri Nov 20 19:13:00 CST 2020 0 398
算法線性時間選擇(最壞情況下)

線性時間選擇(Linear Select):這個名字不太好理解,什么叫線性時間選擇?一句話,在線性時間內完成選擇。一般情況下是這樣的,我們想要找出一個數組中的最大值或最小值,那就只需要一次排列,然后輸出第一個或最后一個元素就行了,但如果是要找出一個數組中的第k小的元素呢?   在一般情況下 ...

Wed Apr 09 20:45:00 CST 2014 0 6751
線性時間選擇

線性時間選擇問題:給定線性序集中n個元素和一個整數k,1≤k≤n,要求找出這n個元素中第k小的元素,(這里給定的線性集是無序的)。 1、隨機划分線性選擇 線性時間選擇隨機划分法可以模仿隨機化快速排序算法設計。基本思想是對輸入數組進行遞歸划分 ...

Sat Nov 07 19:42:00 CST 2020 0 389
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM