快速全球索引 最近n個點

2021-07-14 12:30:11 字數 599 閱讀 7529

最近完成查詢離指定點最近的n個點的相關演算法,一開始效果沒有預期的好,勉強能夠滿足要求,但後來改用intel cpu的台式電腦測試,效果好了很多。具體測試結果如下:

amd  cpu台式測試:

intel cpu 台式電腦測試:

intel cpu的台式電腦配置:

快速全球索引演算法的查詢效率為log2n,查詢最近n個點估計是太多浮點運算,導致最終效率不高。

根據測試可知,通過索引查出的最近n個點與真實的值有些誤差,並不是完全對應的上。如果不能允許這樣的誤差,則查詢效率會大大降低。

這個誤差可以在客戶端消滅,方法為:根據查詢出來的結果進行一次區域搜尋,然後在搜尋出來的結果中挑選出最近的n個點。

這樣的做法增加了客戶端的處理複雜度,但提高了伺服器的高併發性。

LintCode M K個最近的點

lintcode鏈結 給定一些points和乙個origin,從points中找到k個離origin最近的點。按照距離由小到大返回。如果兩個點有相同距離,則按照x值來排序 若x值也相同,就再按照y值排序。您在真實的面試中是否遇到過這個題?yes 樣例給出 points 4,6 4,7 4,4 2,5...

最近的一些知識點索引

1 不要對含有虛函式的類進行memset操作。會把vptr寫壞。3 boost庫里頭有multi index container,多索引容器。4 ipcs m獲得資訊中,當nattach不為0時,如果執行了ipcrm,則當前共享記憶體的key設定為0,表示只有當前attach上去的程序可以對其進行操...

N個點求最大斜率

面試題 平面上n個點,每兩個點都確定一條直線,求出斜率最大的那條直線所通過的兩個點 斜率不存在的情況不考慮 時間效率越高越好。分析 3個點a,b,c,把它們的按x座標排序。假設排序後的順序是abc,那麼有兩種情況 1.abc共線,則k ab k bc k ac 2.abc不共線,則abc將形成乙個三...