原文:舍伍德算法之線性時間選擇問題

一.概念引入 設A是一個確定性算法,當它的輸入實例為x時所需的計算時間記為tA x 。設Xn是算法A的輸入規模為n的實例的全體,則當問題的輸入規模為n時,算法A所需的平均時間為。這顯然不能排除存在x Xn使得的可能性。希望獲得一個隨機化算法B,使得對問題的輸入規模為n的每一個實例均有。這就是舍伍德算法設計的基本思想。當s n 與tA n 相比可忽略時,舍伍德算法可獲得很好的平均性能。 概率算法的一 ...

2020-11-20 11:13 0 398 推薦指數:

查看詳情

(Sherwood)算法學習筆記

的每一個實例均有。這就是算法設計的基本思想。當s(n)與tA(n)相比可忽略時,算法可獲得很好 ...

Sat Jul 27 23:48:00 CST 2013 2 6740
線性時間選擇算法

在一個由 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
三種隨機化算法算法 拉斯維加斯算法 蒙特卡洛算法

一、算法 作用:為了消除實例與時間復雜度之間的關系; 例如,對於一個快速排序算法,開始時所考慮的是一個有很好平均性能的選擇算法,但在最壞情況下對某些實例算法效率較低,此時采用概率方法,將上述算法改造成一個算法,消除實例與時間復雜度之間的關系; 二、拉斯維加斯算法 ...

Thu May 31 17:38:00 CST 2018 0 1165
經典算法總結之線性時間選擇

問題: 輸入:一個包含n個(不同的)數的集合A和一個數i, 1 <= I <= n。 輸出:元素x∈A, 它恰大於A中其他的I – 1個元素(即求第k小數)。 本博文中尋找最大的K個數(TOP K算法)這篇文章也用了本文中的算法,大家可以參考。 三種算法: 1、 直接排序 ...

Fri Aug 17 18:15:00 CST 2012 0 7378
選擇中位數-線性時間算法

  本章繼續講一些關於奇淫技巧(算法啦)的做法,對於一個無序數組,我們如何找到其中位數呢?   首先回顧一下中位數的概念:是按順序排列的一組數據中居於中間位置的數。   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
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM