[理工] [演算法] 找第k小的數
用的是prune-and-search的方法
有幾個問題想要問
對n個元素分成 n/5(取上高斯)個集合
對每個集合做sort
對所有集合的中位數收成集合S'
找S'的中位數為p
則可以分成S1, S2, S3
其中S1的數都小於p
S2的數都等於p
S3的數都大於p
問題1:
在找S'的中位數的時候,要不要將所有的集合以它們的中位數做排序?
問題2:
為什麼在對每個集合做sort時,時間複雜度是n*O(1)
用的是什麼sort演算法呢?
問題3:
最後得到T(n) = T(n/5) + T(3n/4) + O(n)
利用recursion tree可知T(n) = θ(n)
在這一步有需要把recursion tree的做法詳細做出來嗎?
還是只需要寫利用recursion tree可知T(n) = θ(n)就好?
--
推
,
→
,
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.132.121
→
02/15 18:36, , 1F
02/15 18:36, 1F
→
02/15 18:37, , 2F
02/15 18:37, 2F
→
02/15 18:37, , 3F
02/15 18:37, 3F
→
02/15 18:39, , 4F
02/15 18:39, 4F
爆破的方式?
推
02/15 18:39, , 5F
02/15 18:39, 5F
因為他寫Sort each subset of elements需要n*O(1)
可是我不懂,不是有n/5個set要sort為什麼不是 n/5 * O(1) ?
※ 編輯: annheilong 來自: 61.228.132.121 (02/15 22:28)
→
02/15 22:48, , 6F
02/15 22:48, 6F
→
02/15 22:49, , 7F
02/15 22:49, 7F
→
02/15 22:49, , 8F
02/15 22:49, 8F
→
02/15 23:16, , 9F
02/15 23:16, 9F
→
02/15 23:18, , 10F
02/15 23:18, 10F
→
02/15 23:18, , 11F
02/15 23:18, 11F
謝謝樓上的大大們
※ 編輯: annheilong 來自: 61.228.132.121 (02/15 23:46)
→
09/11 14:16, , 12F
09/11 14:16, 12F