往googler的路上day18
今天是開始這個計畫以來,練程式練最少的一天了,但是我搞懂了何謂
"Dijkstra演算法",並將它實作出來且寫對了題目。
以下附上目前筆記:
1.圖形資料結構是由
(1) 點 (2) 邊 所組成。
2.圖形資料結構廣泛應用於程式的實作
3.許多功能的實作都可以轉換成圖形資料結構
4.EX: 使用地圖搜尋最短路徑,將地點轉換成圖形資料結構中的點,地點與地點間的距離轉換成邊的權重
5.使用最短路徑演算法就可以找出最短路徑
6.無向圖vs有向圖 //請搭配以下網址所含圖形觀看
參考資料: https://sites.google.com/site/zsgititit/home/jin-jiec-cheng-shi-she-ji-2/tu-xing-zui-duan-lu-jing
(1)兩者差在方向,想像你用陣列儲存兩者資料的差別
(2)是的,無向圖的資料是對稱的,有向圖則像是經過高斯消去法一樣不對稱// upper triangle 的感覺
7.找出圖形中的最短路徑演算法,常見的有三種,分別是Dijkstra演算法、BellmanFord演算法、Floyd演算法
很像BFS的感覺,即每個點的結果都是最佳解,所以每個點都會是對的。
之所以可以這樣選擇是因為,你要到這個點的話,經過其他點會大於他…..//超強的啦
(1)Dijkstra演算法是一種(Greedy)的演算法策略 // 我自己認為更像動態規劃
‘1’ 最短路徑決定了就不能更改
‘2’不能用於有負環的情形 //所謂的負環就是所有邊形成循環後的加總為負
附上程式碼
今天花了很多時間再研究資料創新應用競賽的資料,很多東西都是我不會的,但是過程中比起問"我是否能夠完成這個目標",更多的是我問了自己
"如何達成這個目標",所以很累但是我會繼續努力的。