演算法筆記(三)|貪婪演算法(Greedy Algorithm)實作 in Java

Coding-X的課堂筆記(三)

Bob
Code Da
4 min readAug 18, 2019

--

對於貪婪演算法,簡單的理解就是 ,每次選擇中 ,都是選最佳解的選項 ,但不代表說每次的最佳解就是全體最佳解 ,那在這次 ,會使用旅行者問題來實作貪婪演算法 ,那規則是這樣 ,從任一城市出發,走訪每個城市一次,最後要回到原城市,不過每一次從上一個城市到下一個城市必選擇權重較小的路走,或當有複數個權重一樣的路,選擇城市編號較小的路走 。

實作方法:

  1. 輸入n個城市後,生成n x n的矩陣來儲存路徑權重,例如:[0][1]就是城市A到B的權重是20。
  2. 生成另一個矩陣trip,來儲存這個城市有沒有經過,用布林值來表示。

3.生成3個int變數,分別為current、next、distance。

4.寫一個函式,來比較哪一個城市是最近的。

5.遞迴呼叫(4)的函式,一邊放進path裏面去儲存來紀錄走過的點,一邊放進distance裏,之後最終比較距離時,會用到。

6.當break發生時,代表要儲存最終的距離了。

7.跑完輸入的城市數量的次數後,最終印出來。

附上程式碼讓大家參考喔 (*´∀`)~♥

總結

希望這些程式碼對大家有所幫助,假如能夠讓大家有所領悟的話,可以幫我按like讓我可以賺咖啡錢喔,我會很開心的 (ゝ∀・)。

--

--

Bob
Code Da

財金人~學習跨領域的新事物,目前是在臺南服務於東橋真愛房屋的不動產經紀人。三年內的目標是不動產估價師的國考生~