Re: [問題] 如何找出包含某點的所有矩形 ?

看板Programming作者 (沒回應=掛站)時間17年前 (2007/04/07 14:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《owokko (天天都是好心情)》之銘言: : 問題: : 在有限的範圍內(0,0)~(x,x) x為極大的數 : (0,0) ┌───→ x : 在這個範圍內有K的大小不一的矩形 及一個點 │ : │ : 請找出包含該點的所有矩形 │ : ↓ : y : 雖然這是暴力法 不過時間複雜度只要 O(K) : 但是似乎有方法可以更快 提示是 quadtree : ( http://en.wikipedia.org/wiki/Quadtree ) : 關鍵好像是資料結的應用 : 不過我怎麼想時間複雜度都不會低於O(K) : 想請問各位的想法?? 獻醜猜一下 :p 下面的方法:純就 "search" 來說,複雜度是O(logK) 但是我在建立資料結構時,做了O(KlogK)的動作 (這動作不算是search嘛 :p) 往後每次有新的點要判斷包含在哪些矩形內時 只需要O(logK)的時間 倘若有n個點要判斷,暴力法的時間複雜度是O(nK) 這個方法則只要O(KlogK + nlogK)。 方法的細節寫在這裡: http://sandwichc.blogspot.com/2007/04/k-pp-quadtree.html 大意是:把矩形先排序好 (這樣有犯規嗎?:p) 再從排完的矩形中做蒐尋 -- My blog: http://sandwichc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.169.117.15 ※ 編輯: sandwichC 來自: 218.169.117.15 (04/07 14:14)
文章代碼(AID): #165pJXg- (Programming)
討論串 (同標題文章)
文章代碼(AID): #165pJXg- (Programming)