2012-06-06 110 views
7

我正在跟蹤位置及其與其他位置的連接。
我將位置保存在一個NSArray中,而每個位置都表示爲一個字典。每個位置都有字典具有屬性(locationName,Connections,緯度,經度),其中Connections是該位置連接到(不是)的其他位置的數組。我使用緯度/經度和Haversine算法來確定兩點之間的距離。iOS上的dijkstra算法

接下來,我想用Dijkstra的最短路徑算法來尋找源和目標位置之間的最短路徑(源和目的地由用戶選擇)

這是不得用於商業用途,也不需要以支持數百或數千個位置。

我正在尋找一些將執行此搜索的目標C代碼。

+4

我們不會編寫代碼給你,但如果你向我們提供你有什麼,大家給點建議。 – SomeKittens

+0

我明白了。傳入參數source,destination和LocationArray我想要返回它們之間的最短路徑(就距離而言)。每個連接都是「單向」的,A ----> B意味着你可以從A到B,但並不隱含你可以從B到A得到,除非在B位置字典中明確定義。如果我分享我目前破損的代碼,這可能會變得更加混亂。這部分(dijkstra的算法)需要重寫。 – user1278974

+1

繼續並分享它(錯誤的代碼並不意味着你是一個糟糕的程序員,它只是意味着你正在學習)。維基百科有一個很好的僞代碼示例。 http://en.wikipedia.org/wiki/Dijkstra's_algorithm – SomeKittens

回答

4

快速谷歌發現了一些Objective-C代碼在snyderp/PESGraph它說

PESGraph爲Foundation.kit一個簡單的圖形實現, 允許greating節點和路徑的結構,然後再尋找 最短他們之間的路徑。它包括單元測試,它也提供了一些如何使用代碼的例子。

另外這個問題以前被問及SO theres-an-easy-way-to-apply-a-shortest-path-alghoritm-in-objective-c和解決方案指向我通過谷歌找到相同的git存儲庫。

+0

謝謝你的建議彼得。 – user1278974

+0

PESGraph回購沒有包含示例代碼。你是否設法最終實際使用它? – inigo333

0

無恥插件:mj-dijkstra 圖形表示是NSDictionary或行爲像字典的對象。