我需要編寫一個ac代碼,它將從距離原點最近的點 的點到與原點距離最大的點的隨機數2d個點進行排序。我需要有一個n * log(n)的時間複雜度,其中n是我們從用戶獲得的點的數量,我想使用堆排序方法。唯一的問題是通過等式(x,y和(0,0)即sqrt((x^2)+(y^2))之間的距離並將此公式應用於我使用的排序方法。只需尋找一些提示或任何關於如何我是否繼續從這裏,所以我會很感激 一條建議根據距離原點的距離排序2d點
回答
任何好的比較排序算法將運行在O( n log n)。爲了提高效率,您希望比較器儘可能快地運行。一個想法是:比較x^2+y^2
而不是實際的距離。另一種方法是:爲每個點計算一次數量並將其緩存到點對象或其他位置,而不是爲每次比較重新計算。
堆排序解決方案:
1.創建從原點的每個點的距離的最大堆。
2.假設你正在通過數組實現堆,則只需創建一個包含該點索引的虛擬數組。
3.just正常堆排序&當您在索引之間進行交換時,也交換虛擬數組中的相同索引。
lets say my input from user is following point
1,0
8,6
4,4
6,0
所以我的距離數組將包含距離
1,10,sqrt(32),6
我的虛擬陣列將包含每個點的正常指數
1,2,3,4
現在裝箱它的陣列會後創造最大堆 10,6,sqrt(32),1
所以那時候你的啞數組看起來就像 2,4,3,1
。 現在應用堆排序10將與1交換以及2將 在虛擬陣列&等等......
交換用1通過這虛擬陣列,你會得到點的所有指標是距離原點最近距離最近
告訴我,如果有什麼是你不明白的。
術語'max heap'是什麼意思? –
其中父元素總是大於其子的堆 –
我想你知道有兩種堆,一種是父親總是小於孩子,這被稱爲最小堆,另一種是父母大於孩子被稱爲最大堆。 –
- 1. 算法根據距離源的距離對圖中的頂點進行排序
- 2. 距離原點到空間中的點
- 3. 距離點3D
- 4. Lucene.Net排序距離點的結果
- 5. 根據距離和方向計算點
- 6. Google Places Api根據距離排序
- 7. 根據距離和受歡迎程度對地點排序
- 8. 單點的距離
- 9. jQuery Table sorter排序浮點距離
- 10. 如何根據距離數據庫的距離對數組進行排序
- 11. 距離某一點的線段距離上的點
- 12. 找到距離地點最小總距離的點的算法
- 13. 按距離排序
- 14. 2D距離約束
- 15. ElasticSearch:嘗試獲取城市,距離經緯度的距離,並根據距離進行排序
- 16. 按原點距離對座標數組進行排序
- 17. 谷歌地點api排名的距離
- 18. 點之間的距離
- 19. 到點的最短距離
- 20. 特定距離內的點
- 21. 排序數組的距離
- 22. Android的排序按距離
- 23. Django的按距離排序
- 24. 點對點距離(2D)和交點座標
- 25. 根據距離翻譯
- 26. 排名的距離
- 27. 距離Cell塔的距離
- 28. 根據節點對距離在圖表上繪製節點
- 29. 地圖點過濾距離
- 30. 點線距離計算
這是什麼問題?採取任何排序功能,並在該代碼部分比較兩個元素/點,計算兩個距離並首先採用較低distacne的點。 – deviantfan