作者dreak (dreak)
看板AndroidDev
標題[問題] 範圍搜尋比對
時間Mon Jul 29 18:09:22 2013
我有個ArrayList裡存放所有的物件,然後螢幕上有個可以移動的VIEW
我想在使用者移動螢幕時顯示出在螢幕範圍內的物件(物件有x,y座標),
目前想到比較簡單的作法是透過for去比對ArrayList裡的每個物件
可是這樣即使使用者只移動一點點螢幕,仍然會從搜尋整個ArrayList,
感覺十分沒有效率,不知道版上的高手有沒有什麼推薦的演算法或好的建議?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.71.52.244
1F:推 iForests:你的物件數量有多少呢? 07/30 12:36
2F:→ iForests:如果只有幾百個,直接 O(n) 查找全部的物件就夠快了 07/30 12:37
3F:推 tac0wu:切n*n 個regions 用n*n個ArrayList來放 07/31 00:57
4F:→ tac0wu:只要搜尋有overlap regions 的Arraylist 07/31 00:59
5F:推 tac0wu:怕物件分布不平均 可以用k-d tree 不好寫就是了 07/31 01:04
6F:→ dreak:可能會到上千個物件 07/31 23:38