English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

演算法是何物? 寫一個程式一定需要用到它嗎? 我剛開始寫程式都是想辦法達到題目要求的結果, 只要結果是對的, 老師那題就當做全對, 當然程式其中的效率和撰寫技巧一定和老手差很多... 最近剛要修資料結構, 老師要求除了寫出正確結果的程式外, 還得先敘述使用的演算法, 把流程說明白, 這是指要敘述程式的每個步驟是用什麼方法寫的嗎? 如果是, 這有何用意呢, 老師看原始檔就知道了吧... 如果不是, 那又是該敘述什麼?

不了解... 寫程式不就是先想好大致的寫法, 寫出來後再從中除錯修正直到達成正確結果嗎? 可能是我寫的程式不多又很小吧, 到底演算法是什麼? 我怕曲解了老師的意思, 敘述了一大堆多餘的東西, 請各位指教!

2006-10-04 17:35:52 · 4 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

我還有些問題:
老師要求要先說明的東西有演算法的流程和使用的資料結構, 如果那個程式並未使用資料結構呢?
舉個我以前寫過的題目, 我直接po別人的網址上來, 裡面有程式碼:
http://caterpillar.onlyfun.net/Gossip/AlgorithmGossip/BigNumber.htm
像這個例子是否就沒使用到資料結構?

2006-10-06 20:00:06 · update #1

4 個解答

演算法 (Algorithm) 的定義是『在有限步驟內一定會算出答案的方法;哪怕算出的答案叫此題無解。』
就是說:Algorithm是個(理論上)一定不會進入無限迴圈的東東。

寫程式,最好要用到它!
一個沒有 Algorithm 的程式,誰知它會不會結束?會不會當?

Algorithm 雖然都有結果,但有好壞之分。
同樣的題目,有的程式 2 秒跑出來,有的程式 40 分鐘只做出 50 分之一,還可能會當機!(這是個人真實經驗,資料量才 105萬 而已。)

〝先想好大致的寫法〞那〝大致的寫法〞就是你的Algorithm!
但,它真的能解決問題嗎?它快嗎?它一定能解決問題嗎?
如,題目:輸入 2 整數 a, b,求 a, b 的整數商。
  for (c=0; a>=b; c++; a-=b); printf("%d", c);
 這方法好吧!?短又快!
 但,它〝不一定〞會結束!沒判斷 b == 0 !
 因為它〝不一定〞結束!它不能叫 Algorithm!
 當然,Algorithm 是方法,不是程式!!

有不懂的再問,大家再補充!
加油! ^_^

2006-10-05 19:21:01 補充:
定義上,〝不能確定〞會出答案的真的不叫演算法!

演算法一定要會出答案;哪怕答案是〝題目太難我不會〞!

『即使他是O(N!)複雜度』,在 C*N! 後,它還是會出答案──雖然可能是3百萬年後。

不適合的演算法,就是不好的演算法。
不管是題目、機器、教授、老闆、顧客……,他要求要快,你的演算法是省RAM,那就是不好的演算法。他要求要省RAM,你的是快,那也是不好的演算法。他要求在某RAM的大小下,要快、要不用到 XX 設備;你的很快,卻用了超過的RAM或用到XX設備,那還是不好的演算法!

有的演算法,又慢又耗RAM,如何說它只是不適合,不是不好?

2006-10-05 19:23:19 補充:
喔,忘了寫:
關於定義上,沒確定會不會出答案的是不是演算法,可以看課本,或參維基百科。
http://en.wikipedia.org/wiki/Algorithm

2006-10-07 06:56:48 補充:
陣列就是他用的資料結構

2006-10-04 17:57:19 · answer #1 · answered by ? 7 · 0 0

演算法是解開問題的逐步方法 而程設是解開問題的工具!

2016-11-07 12:44:46 · answer #2 · answered by 家生 1 · 0 0

一講到演算法我就想到時間複雜度,因為有些演算法使終無法逃脫"指數時間"的宿命。

2006-10-05 06:01:59 · answer #3 · answered by Almond 6 · 0 0

嗯!同意 Jacob Lee的說法!

演算法 (Algorithm) 在實務應用上真的很管用.若有機會的話要好好學!

因為在值場上,懂演算法的技術人員真的會比較吃香!

2006-10-04 19:22:19 · answer #4 · answered by ㄚ旺 5 · 0 0

fedest.com, questions and answers