最近完成查詢離指定點最近的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將形成乙個三...