[理工] 演算法一題:2個sorted array找median

作者: ff00662299 (goneboy)   2022-12-16 20:50:47
給兩個sorted array A跟B,
A的長度是m,B的長度是n。
想問為什麼要找這m+n個數的median的時間可以做到log min(m,n)?
作者: A4P8T6X9 (殘廢的名偵探)   2022-12-16 23:59:00
binary search 任一 array,每次取中點代表該 array要貢獻多少個數字到合併後的陣列的左邊,因為有兩個陣列的長度,另外一個陣列要貢獻多少個數字可以直接算出來,之後如果貢獻出來的左邊的值大於另外一半右邊的值,代表這個切法錯誤,需要調整,基本上調整方式會根據剛剛貢獻出來的左邊數字進行調整。因為除了 binary search 以外都是常數時間,且可以任選一個 array 做,所以是 log(min(m, n))
作者: a93011abc (阿屎)   2022-12-20 20:27:00
設較長的陣列為m拿m[m+n/2]去跟n[i]比;i=0~n。若n較大結束n較小i+的同時m陣列往前一格 所以最多會走n個
作者: lingege321 (happyChicken)   2022-12-23 21:58:00
Leetcode第四題 可以查

Links booklink

Contact Us: admin [ a t ] ucptt.com