C的實作

最近比較閒、上班都在看一些演算法和資料結構的網站 (爽日子不知哪時會到頭......資料好多根本看不完啊),然後花了兩天半用C實作一些東西。

第一個部分是:輸入點的數目N、每個點最小道路數目M、地圖尺寸L,然後會在L*L範圍內隨機生成N個點,每個點對距離最近的M個點生成道路。
一個模擬城市的概念。XD
不過C函式庫的隨機數太少了,只有0~32767,要再找大一點的隨機數才行。

第二個部分是:指定最左上角的點為起點、最右下角的點為終點,計算最短路徑是多少、會經過哪些點,主要是用遞迴實現。
跑了幾次,最短路徑的值都滿接近L*根號2的。

整個架構不到一天就寫出來了、不到300行,最短路徑的演算法網路很多實作可以參考。
剩下的一天半都在摸索結構指標陣列怎麼玩、還有debug,最後一個Bug花了半天才找到...Orz (要把>=改成>)
很遺憾以前沒多修一些計算機相關的課啊,好像盲人摸象。

可以擴充的地方很多,譬如說建立可以擴充地圖節點的資料庫、改成互動式可以指定起終點、優化尋找最佳路徑的判斷、道路隨時會中斷最佳路徑隨即修正之類的。
弄這個能幹嘛?我也不知道,對現在的工作來說沒啥用,純粹好玩而已,盡量讓自己的腦袋不要荒廢囉!

留言

熱門文章