[理工] 演算法 closest pair
學校程式題有出到這題 一直TLE
稍微研究了一下 發現林立宇的code好像有錯
大概以下幾點,如果有人知道我哪邊理解錯 請跟我說
-
1. 林的版本跟楓葉本不一樣 不知道是哪本原文書的?
2. 他的遞迴要 merge 的時候應該是只要找該遞迴區間(不能K 從頭掃到尾)
3. 但是根據 2 你原陣列跟 K 的區間的點不會一樣
(意思就是 可能你index 6~10 的點 在K跟原陣列不會是同一批點)
4. 所以不能用到那個鴿籠原理(只找7個點) 因為你沒辦法線性時間內找到同時符合|x-m|<=d 然後又可以根據他們y座標排好的順序取點(因為這些 |x-m|<=d 的點在K的位置你不知道)
5. 所以林的版本複雜度應該是n^2 不然程式會錯
-----
Sent from JPTT on my iPhone
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.52.131.223 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1601706195.A.5BE.html
推
10/04 21:25,
3年前
, 1F
10/04 21:25, 1F
K沒有divide的話會n^2哦!
→
10/04 21:44,
3年前
, 2F
10/04 21:44, 2F
※ 編輯: NTUmaki (27.52.131.223 臺灣), 10/04/2020 21:44:26
→
10/04 21:46,
3年前
, 3F
10/04 21:46, 3F
→
10/04 21:46,
3年前
, 4F
10/04 21:46, 4F
→
10/04 21:46,
3年前
, 5F
10/04 21:46, 5F
→
10/04 21:46,
3年前
, 6F
10/04 21:46, 6F
→
10/04 21:47,
3年前
, 7F
10/04 21:47, 7F
→
10/04 21:47,
3年前
, 8F
10/04 21:47, 8F
推
10/05 09:39,
3年前
, 9F
10/05 09:39, 9F
推
10/06 21:13,
3年前
, 10F
10/06 21:13, 10F
→
10/06 21:14,
3年前
, 11F
10/06 21:14, 11F
推
10/07 19:11,
3年前
, 12F
10/07 19:11, 12F