原文:算法之線性時間選擇(最壞情況下)

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

2014-04-09 12:45 0 6751 推薦指數:

查看詳情

最壞情況線性時間選擇算法

算法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
線性時間選擇算法

的,出現在 i = (n + 1)/2 處。當 n 為偶數時,存在兩個中位數,中位數 i = n/2 和 ...

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
冒泡法的算法最佳情況下時間復雜度為什么是O(n)

我在許多書本上看到冒泡排序的最佳時間復雜度是O(n),即是在序列本來就是正序的情況下。 但我一直不明白這是怎么算出來的,因此通過閱讀《算法導論-第2版》的2.2節,使用對插入排序最佳時間復雜度推算的方法,來計算冒泡排序的復雜度。 1. 《算法導論》2.2中對插入排序最佳時間復雜度的推算 ...

Tue Sep 15 05:41:00 CST 2015 0 3093
選擇中位數-線性時間算法

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

Sun Jan 19 22:40:00 CST 2020 0 1272
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM