有哪些,我苦苦尋找的答案兩個實際的問題:算法兩個實際生活中的問題
餐廳服務:當我用我的訂餐應用程序(如FoodPand,Zomato,等等),當我登錄時,應用會檢測到我的位置,並據此建議附近的餐館(可能範圍足夠好,以便所選餐廳可以提供食物)。
駕駛室服務:當我使用出租車服務(如尤伯杯或OLA),他們也檢測到我的位置,當我嘗試預訂了一輛出租車,並建議可當時附近的出租車。
問: 如何找到最近的餐館和出租車最近做?他們實際使用哪種特定的算法?由於兩種情況都有所不同,因爲一種情況下搜索數據是靜態的,另一種情況下會不斷變化
我對這個問題採取:
做的題目有些頭腦風暴之後,我才知道,由於餐廳是固定的實體,我們可以通過KD樹將它們映射(它允許存儲空間索引)。根據客戶的位置,我們可以在KD樹上搜索以找出附近的一組餐館。 KD樹的創建需要O(n)個時間並且搜索花費O(logn)時間,n是樹中n個點的數量。這種方法似乎對我來說足夠了,因爲我沒有意識到比這更好的方法,我仍然在尋找答案。
在出租車服務的情況下,出租車的位置不是靜態的(與餐館服務不同)。因此,爲每個改變的出租車位置創建KD樹似乎都是一種開銷。鑑於出租車的當前位置,我怎麼能找到5個最近的出租車?駕駛室實際使用哪種算法?
任何見解將不勝感激。
P.S. :我還遇到了K最近鄰搜索算法,這又會導致KD樹。