迪傑斯特拉演算法:
連線圖是二維鄰接矩陣
通過dijkstra計算圖g中的最短路徑時,需要指定起點vs(即從頂點vs開始計算)。
此外,引進兩個集合s和u。s的作用是記錄已求出最短路徑的頂點,而u則是記錄還未求出最短路徑的頂點(以及該頂點到起點vs的距離)。
初始時,s中只有起點vs;u中是除vs之外的頂點,並且u中頂點的路徑是"起點vs到該頂點的路徑"。然後,從u中找出路徑最短的頂點,並將其加入到s中;接著,更新u中的頂點和頂點對應的路徑。 然後,再從u中找出路徑最短的頂點,並將其加入到s中;接著,更新u中的頂點和頂點對應的路徑。 … 重複該操作,直到遍歷完所有頂點。
思路整理:
將地圖整理成二維連線矩陣的形式,但把每個站點都當成乙個矩陣行列,資料的大小十分龐大,這不是我乙個人能應付過來的
所以我將圖例簡化——我發現圖有很多個交叉點,交叉點的出現,導致如果路線出現變更,需要從交叉點換車,並且換乘的次數不固定,要想取得最快的路線,有兩種情況:需要換乘和不需要換乘
不需要換乘很簡單,從出發點遍歷路線站表就可以獲得路線
需要換乘的情況就相對複雜了,不僅需要從出發線離開,還需要找到終點站在哪條線中
我將圖中交叉點留下,省略其他點,將交叉點之間的站間數作為權值,構造乙個簡單的無向圖。出發點(或終點)如果是交叉點就直接借用交叉圖來計算和記錄;如果出發點(或終點)不在交叉點就將其向兩頭延申到交叉點再進行以上計算和記錄。
思路清晰,開始構建
學習日記 3
今天很早同學就來叫我去自修了,休息了這麼多天,是應該開始勤奮了。不過去到教學樓真的有點後悔,那裡在施工,嘈還不說,連電都停了,但既然去到也就在那裡自修了。開了窗,偶爾有點風,但那只是偶爾,更多的時間是一點風都沒有,悶熱 擦掉桌面和椅上的一層灰塵,就開始看書了。今天看了很多,也很累,現在就回憶一下 看...
學習日記(4)
終於開始軟體設計了,昨天下午弄了一下午的圖象處理,終於有點成果了,用到的主要是vc 的mfc程式設計。下面總結一下 cfiledialog filedia false,null,null,null,t 自定義檔案型別 bmp bmp null 開啟檔案對話方塊函式 loadimage api函式,這...
09 11 12學習日記
昨晚做了教材6 22題目,原題 編寫函式int index char s,char t 返回字串t在字串s中出現的最左邊的位置,如果在s中沒有與t匹配的字串,就返回 1。自己做的 include include using namespace std int index char s,char t ...