基本演算法
(教材參考: 110翰林八下資訊科技、112康軒七上資訊科技)
(教材參考: 110翰林八下資訊科技、112康軒七上資訊科技)
何謂演算法(algorithm)?
演算法(algorithm,簡稱algo) 簡單的說就是解決問題的方法。在日常生活中,演算法時時刻刻在幫我們解決問題。例如做菜時的食譜也是一種演算法,讓做菜這個抽象問題化為可操作的步驟。
簡單來說,演算法就像是做數學作業時的步驟指南,告訴你應該怎麼做某件事情。這些步驟是為了解決特定的問題或完成特定的任務而設計的。
想像一下,你在做一個拼圖遊戲,拼圖上有很多塊拼在一起,但是它們都亂七八糟的。你可以使用一個演算法來解決這個問題。演算法的第一步可能是找到拼圖上的角落塊,因為它們比較容易識別。然後,你可以將角落塊放在正確的位置,然後繼續尋找那些鄰近的拼圖塊,一步一步地完成整個拼圖。
所以,演算法就是一個按照特定順序執行的一系列步驟,幫助我們解決問題或完成任務,就像小學生在做作業時遵循的指南一樣。不同的問題可能需要不同的演算法,就像不同的拼圖需要不同的步驟來完成一樣。演算法幫助我們更有效地處理各種工作和挑戰。
舉例來說:
當我們設計一個簡單的演算法來煮一杯熱巧克力飲料,它可能如下所示:
1. 收集材料和工具:熱巧克力飲料粉末、杯子、熱水、湯匙。
2. 將杯子放在平穩的地方。
3. 打開巧克力飲料粉末包裝。
4. 使用湯匙,取出一定量的巧克力飲料粉末,例如兩大湯匙。
5. 將巧克力飲料粉末倒入杯子內。
6. 熾燃一壺開水。
7. 將開水輕輕倒入杯子內,直到巧克力飲料粉末完全溶解。
8. 使用湯匙攪拌,確保混合均勻。
9. 檢查飲品的溫度,確保不會燙傷舌頭。
10. 如果需要,加入糖或其他調味劑,然後再次攪拌。
11. 等待一會兒,直到飲品冷卻至適合飲用的溫度。
12. 喝掉你的熱巧克力飲料,享受它的美味。
這個演算法包括一系列有序的步驟,以指導你如何製作一杯熱巧克力飲料。這些步驟確保你在準備飲料時不會遺漏任何步驟,並最終得到一杯美味的飲品。在生活中,我們使用類似的演算法來完成各種任務,從做飯到駕駛汽車,都需要按照特定的步驟來執行。
演算法的表示方法:
演算法可以利用文字描述、流程圖、或虛擬碼(註1)來表示,像是食譜就是一種用文字描述表示的演算法。
註1:流程圖介紹可參考這個網頁-->流程圖介紹
註2: 虛擬碼pseudocode ,又稱偽代碼即允許使用接近人類語言的形式,幫助我們更方便地描述演算法,不用拘泥於程式語言的結構或用法
文字描述的演算法
流程圖的演算法
學習重點
線上演算法: 新加坡大學製作的線上演算法,透過互動動畫讓大家能更了解演算法運算的過程。
科技小常識: 演算法的由來
演算法的英文原義是由九世紀波斯的數學家 Mohammedal-Khowãrizmî 的名字演變而來,以拉丁文表示則為 Algorismus,他提供了十進位加、減、乘、除的運算法則。而最早出現的演算法可以追溯到西元前 350 年左右,希臘數學家歐幾里德(Euclid)所發現求二個正整數最大公約數的演算過程。一般演算法的定義是指特定問題的特定解法。如煮菜時依食譜所定的步驟及說明烹調,則食譜中所載的步驟說明即是一種演算法,藉著它可以解決特定的問題(得到佳餚)。又如教小孩折紙,折紙皆有特定的步驟,這些步驟也可以稱為演算法。1950 年代後,電腦科技的興起,演算法中有了新的涵意:能在有限的時間內完成明確界定的演算過程。到了 1970 年代,幾乎電腦的各個領域,由基本理論到電腦的應用均普遍採用演算法,並且自成體系,成為電腦科學的一個重要領域。它是電腦用以解決問題的思考工具,如程式設計解題時,須先以演算法設計解題的步驟,而後才將這些步驟以某一種程式語言的語法轉化為程式。
(資料來源:翰林八下資訊科技教材)