培養與鍛鍊程式設計的邏輯腦 |
培養與鍛鍊程式設計的邏輯腦的作者是江任捷,同時也是「演算法筆記」版主
演算法真的是一門讓人又愛又恨的學問啊!目前讓我只有恨沒有愛的應該是離散數學......
會讀這本書要感謝清大資工女神駱若瑀(現在是台大資工所的神),是她讓我踏進演算法這個有趣的領域(地獄),在此感謝祝福她能夠順利畢業。
本書提供了基礎的十種演算法,諸如貪婪演算法、窮舉法、遞增遞歸、分治法等,以十個章節分別介紹,每個章節中皆有大量的範例,可以直接讓讀者體會這些演算法的運用方式。以下簡單介紹幾個:
遞增法Incremental Method:一個一個步驟處理問題
記憶法Memoization:預處理,然後儲存計算過的數值,活用電腦裡的每一份資源
窮舉法Enumerative Method:窮舉法有兩個階段,窮舉(列出所有目標),然後搜尋
遞推法Interative Method:運用先前求得的數值,在求新的數值
遞歸法Recursive Method:重複運用相同手法,縮減問題範圍,直到釐清細節
貪婪法 Greedy Method:用投機取巧的手段獲得正確答案,例如填答案及改答案
分治法Divide and Conquer:分割問題,各個擊破
遞增法Incremental Method:一個一個步驟處理問題
記憶法Memoization:預處理,然後儲存計算過的數值,活用電腦裡的每一份資源
窮舉法Enumerative Method:窮舉法有兩個階段,窮舉(列出所有目標),然後搜尋
遞推法Interative Method:運用先前求得的數值,在求新的數值
遞歸法Recursive Method:重複運用相同手法,縮減問題範圍,直到釐清細節
貪婪法 Greedy Method:用投機取巧的手段獲得正確答案,例如填答案及改答案
分治法Divide and Conquer:分割問題,各個擊破
遞歸法 |
演算法不只可以用在程式設計,更可以當作解決各種問題的想法,如分治法,是將一個大問題分割成許多小問題,如果小問題還是很難,再繼續分割成更小的問題,分割問題,各個擊破。「凡治眾如治寡,分數是也;鬥眾如鬥寡,形名是也」-孫子。 程式語言不只是死板板的數字,也是一個鍛鍊思維的工具,學程式語言將近十年,無形之中我也練就了良好的邏輯,跟解決問題的能力。只要具備基本的概念,藉由此書,可以讓你的能力更上一層樓。
沒有留言:
張貼留言