iT邦幫忙

2021 iThome 鐵人賽

DAY 1
5

【在廚房想30天的演算法】Day 01 演算法好吃嗎~

Aloha!我是少女人妻Uerica!哈哈哈,過了一年又開始跟老公沒話題了,加上疫情關係天天處一起,我的聲音已經變成增加他專注力的白噪音了QQ!突然間看到螢幕上跳出 " IThome鐵人賽 熱血開賽 " ,喔!!今年我又有理由煩老公拉~(\歡呼/)!這三十天也請各位多多指教了~

學習目標與方向

目標

  • 自己是從沒接觸過演算法與資料結構的非本科生,我是時尚系畢業的 XDD。常夢到隔壁小陳說演算法很重要,所以想藉由三十天的自學與接觸更加認識演算法、資料結構的基礎,並更了解原理與方法。
  • 希望未來面對問題能夠更快的想出最佳解法,以及能寫出更好的程式碼。
  • 想跟老公增加話題!← 最重要 XD

方向

  • 目前我先從好讀好看又超好理解的《演算法圖鑑》一書開始(全彩讚讚),以此書的目錄與所提及的主題為大方向開始延伸,再藉由網路上或公開課程等多方資料的協助,最後用產出學後心得。
  • 說明用的程式碼會使用 javascript

目錄(這邊會陸續增加唷)


什麼是演算法以及演算法為什麼重要?

今天一如往常在廚房奮鬥的時候,自己漸漸練成流暢的備料與料理步驟,熟悉的料理幾乎不加思索就能計算出最省時的步驟,例如紅蘿菠跟南瓜用蒸的取代滾水燙、雞腿排與鮭魚排高溫烘烤取代鍋煎、使用食物調理機取代菜刀等。

突然想起剛認識老公時替他做便當,待在廚房一整天的時間才好不容易完成一個便當,當時料理時間又長又容易出錯,每次煮完都要花三天時間休養回血啊 XD。

辛苦好久的便當
這種精心便當做不到三次,反正老公也到手了XD

所以演算法為何重要呢~有下廚的人應該可以體會,若要做出一整桌菜,有邏輯的設計步驟與計算料理時間是非常重要的,而寫程式也是如此!

廣義來說,演算法是一種牽涉到解決問題的步驟與邏輯的方法。

《演算法圖鑑》一書提到:如果做出某種料理的步驟是食譜,那麼用電腦解出特定問題的步驟就是演算法

另外根據 Donald Knuth 在 《電腦程式設計藝術》中提到演算法的定義:

  • 要有 輸入 Input 與輸出 Output:就像要做一道料理,使用的食材有哪些(Input),以及最後做成的料理是什麼?(Output)

  • 有限性:簡單來說就是輸入與輸出之間的程式要在有限的步驟停下,不可以是個無窮迴圈。

  • 明確性:描述精確且沒有模糊地帶,不會有不同人看到有不同想法的情況。例如高麗菜就比蔬菜來得更明確。

  • 有效性:每個步驟都是可執行且有效的。例如像食神一樣用手掌煎荷包蛋就是不行的!


啊哈!大概就是如此~終於寫完第一篇了,萬事起頭難!最難的已經過了哈哈哈~感謝各位閱讀~明天見啦!


下一篇
【在廚房想30天的演算法】Day 02 想著想著想到一個 Big O
系列文
少女人妻在廚房裡想不通的演算法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
華叔
iT邦新手 4 級 ‧ 2021-09-16 15:01:09

演算法真的好好吃。可惜今年不能追隨團長…

你超前好幾千哩我們追不上了嗚嗚~,那就只好麻煩 Edward 大大幫我看看有沒有地方消化不良了,哈哈哈哈

0

我比較想吃妳做的便當~香腸有笑臉也太可愛/images/emoticon/emoticon24.gif

用模具壓的哈哈哈,當時收集一堆便當模具,沒想到做不到三次 XDD!不嫌棄的話歡迎隨時來我家蹭飯哈哈哈哈~~

0
喬叔
iT邦新手 4 級 ‧ 2021-09-17 00:23:45

看來今年你老公的演算法會進步…

/images/emoticon/emoticon07.gif

你到底複習好了沒,資料結構要開始了呢~~

0
蛋踢球
iT邦新手 4 級 ‧ 2021-09-17 07:46:07

加持演算法的便當!

好吃好吃~~!

0
艾米
iT邦新手 4 級 ‧ 2022-06-06 17:27:20

我也會做便當!QQ
但Uerica妳做得好美唷/images/emoticon/emoticon24.gif
希望我也能拐到一個軟體工程師老公哈哈哈

可惜我的文章沒刷到榜上,不然妳站內信收不完了~~?

我要留言

立即登入留言