Algorithm  演算法

7y段考考題

演算法:解決問題的方法。遵循演算法的步驟執行,可以正確解決問題。

演算法與電腦關係:

電腦功能運作背後,都是遵循著演算法執行的。資訊科技領域中,演算法有嚴謹的定義,以確保能正確執行、有效解決問題。

演算法的功能:

1.明確地告訴電腦,碰到什麼狀況時,應該如何反應或執行什麼步驟。

2.由於每個人思考方式不同,針對同樣問題,會設計出不同演算法。

3.不同的演算法,會影響電腦處理問題的結果與效率。

演算法五大特性:

1. 輸 入:可有多個輸入資料,或是沒有輸入資料。

2. 輸 出:必須至少有一個輸出結果。

3. 明確性:每個指令必須明確,不可模稜兩可。

4. 有限性:執行演算法,必須在有限步驟內結束。

5. 有效性:又稱可行性,演算法中的每個命令都必須是可執行的步驟,用紙筆也能推演完畢,以確定能解決問題。

演算法的表達方式:演算法沒有固定呈現方式,只要能清楚表達,並符合演算法五大特性即可。

編碼

常見的
表達方式

說明

範例 1 ( 求甲、乙兩數相加之總和。)

範例 2 (依據「是否下雨」來決定行程。)

1

文字

用一般語言文字來描述執行步驟。

步驟1. 輸入「數字甲」。
步驟2. 輸入「數字乙」。
步驟3. 將「數字甲」及「數字乙」相加,所得即為「總和」。
步驟4. 輸出「總和」。

步驟1. 判斷是否下雨。
步驟2. 若下雨,就去圖書館。
步驟3. 若未下雨,就去打籃球。

2

流程圖

用圖示符號來描述執行過程。

3

虛擬碼

用類似程式語言的方式來描述執行步驟。

(1) input 甲
(2) input 乙
(3) sum = 甲 + 乙
(4) print sum

(1) if 下雨
(2) then 去圖書館
(3) else 去打籃球

流程圖符號:

 

符號

名稱

說明

1

開始/結束

流程的開始或結束

2

輸入/輸出

輸入或輸出資料

3

處理程序

要執行或處理的程序

4

決策判斷

針對條件進行判斷,以決訂執行的流向。

5

流向線

流程進行的方向

6

迴圈(重覆)

迴圈變數初值與終值的描述

7

連接

流程的連結點

8

註解

表示附註說明之用

9

副程式

已定義流程的組合

10

文件

輸入或輸出文件

電腦資料演算法

演算法

   

文字說明

概念影片

觀念練習

題目練習-康軒

題目練習-翰林

排序

選擇排序法

概念是反覆從未排序的資料中取出最小的元素,加入到另一個資料的最後 一項 ,當所有元素都取出後,它的結果就是已排序的資料。

規則

1.將數值分為「已排序」和「未排序」兩部分。

2.在「未排序的數字」中找到「最小值」,和「未排序的第 1 個數」交換,完成 1 個數的排序。

3.重覆2,直到完成排序。

 

選擇排序法概念影片

1資訊科技-選擇排序法(翰)

2.選擇排序法(翰)

3.選擇排序法(康)

完成天平遊戲,並截圖存檔。
檔名:
年班-座號-8y-1-1-t15.jpg

<截圖>
 1.[Windows 鍵]視窗圖樣)+ Print Screen (也可能標示為PrtScn 或PrtScrn)

2.[Windows 鍵]+ Shift + S

 

選擇排序法演練
 

選擇排序法
ch4課 p.171
作業
十六、檔名
年班-座號-ch6-6-1-t16

程式摘要

插入排序法

概念是逐一取出未排序資料中的元素,再從另一個已排序資料中,由前往後找到適當的位置插入,就完成資料的排序。

規則

1.將最前端的數當作「已排序」,把數值分為「已排序」和「未排序」兩部分。

2.將「未排序的第 1 個數」,由後往前逐一和「已排序」的數值比較,並插入到適當的位置。

3.重覆2,直到完成排序。

插入排序法概念影片

1Insert-sort with Romanian folk dance(翰)

2The Sound of Sorting-Insertion Sort(翰)

3.插入排序法(康)

t16 versus t17

 

插入排序法演練
 

插入排序法
ch4課 p.183
作業
十七、檔名
年班-座號-ch6-6-2-t17

程式摘要

氣泡排序法

概念是每回合從原始資料最左邊的元素開始,將相 鄰的兩個元素做比較,並按照由小至大排序,依序比較完所有相鄰的元素後,即可得到該回合 最大的元素,並且不列入下個比較的回合,直至所有回合皆比較完。

規則

1.將數值分為「已排序」和「未排序」兩部分。

2.在「未排序」的數值中,將最後一個數值設為「比較位置」,並和前方相鄰的數比較,若前數>後數,兩數交換。

3將步驟2中較小的數,設為新的「比較位置」,再與前方的數比較、交換。

4重複3,當最小的數移動到最前面,完成此數的排序,結束一輪掃描。

5重複2、3、4,依次完成所有數值的排序。

1.氣泡排序法(康)

練習

氣泡排序法演練

氣泡排序法練習-發牌

檔名:
年班-座號-8y-1-2-t16

程式摘要

 

小試身手-神廟試煉

檔名:
年班-座號-8y-1-2-t17

實作活動-歌唱比賽

檔名:
年班-座號-8y-1-2-t18

3分鐘搞懂, 泡沫排序法vs快速排序法! -Bubble Sort vs Quick Sort

5分半搞懂, 合併排序法vs快速排序法! - Merge Sort vs Quick Sort

搜尋

線性搜尋法/循序搜尋法

用來搜尋特定資料的方法。從第一個資料開始取出,依序逐一與「目標資 料」相互比較,直到找到所要的元素或所有資料均尋找完為止。

 

規則

1.從第一筆資料開始比較。

2.若資料=目標,結束搜尋。

3.若資料≠目標,比較下一筆資料。

4.重複2∼3,若到最後一筆資料仍未找到, 代表無目標資料,並結束搜尋。

循序搜尋法概念影片

1資訊科技-循序搜尋法

2LINEAR search with FLAMENCO dance(翰)

3.循序搜尋法(康)

完成海戰棋遊戲
截圖存檔。

檔名:
年班-座號-
Naval chess.jpg

海戰棋說明

<截圖>
 1.[Windows 鍵]視窗圖樣)+ Print Screen (也可能標示為PrtScn 或PrtScrn)

2.[Windows 鍵]+ Shift + S

拍賣查詢

檔名:
年班-座號-8y-2-2-t20

程式摘要

循序搜尋法
ch4課 p.195
作業
十八、檔名
年班-座號-ch6-6-3-t18

程式摘要

二元搜尋法

對於已排序資料進行折半搜尋,如果要搜尋的元素比中間值大,那另一半 比中間值小的元素就不用再比較,待搜尋的資料馬上減少一半,反覆進行此步 驟,就可以快速找到「目標資料」。

 

規則

1.資料必須已排序。

2. 找出「待搜尋範圍」的「中間位置值」:

● 奇數個資料,取正中間位置的資料。

● 偶數個資料,取中線左方位置的資料。

3.比較:

(1) 若中間位置值=目標,結束搜尋。

(2) 若中間位置值≠目標,將「中間位置值與另一側的資料」排除。

4.重複2∼3,若已排除所有資料仍未找到,代表無目標資料,並結束搜尋。

二元搜尋法概念影片

1資訊科技-二分搜尋

2BINARY search with FLAMENCO dance

3.二元搜尋法(康)

二元搜尋法演練

保存期限

檔名:
年班-座號-8y-2-2-t21

二元搜尋法1
ch4課 p.207
作業
十九、檔名
年班-座號-ch6-6-3-t19

程式摘要

二元搜尋法2
ch4課 p.217
作業二十
、檔名
年班-座號-ch6-6-3-t20

程式摘要

實作活動-發票對獎器

檔名:
年班-座號-8y-2-2-t22

 

海戰棋遊戲補充說明:

想一想:

關卡

想一想

第一關、第二關

有什麼猜的策略嗎?

第三關、第四關

有情報員的提示,你猜了幾次?

第五關、第六關

分了十個港口,依規則計算必定縮小範圍,你猜了幾次?

搜尋法:搜尋就是在一堆資料中,找出特定資料。

解題:

關卡

搜尋法

策略

比較

第一關、第二關

線性搜尋法

線性搜尋法:
1.從頭找到尾,必定可以過關。
2.從第一筆資料開始比較。
3.若資料=目標,結束搜尋。
4.若資料≠目標,比較下一筆資料。
5.重複3∼4,若到最後一筆資料仍未找到,代表無目標資料,並結束搜尋。

資料呈現不規則排序,因此過關所需要的時間無法預測。

運用時機:

1. 適用狀況: 資料沒有經過排序,沒有規則可循時。
2. 搜尋方式: 一筆一筆比較資料內容,並將非目標排除, 直到搜尋到目標值,或是搜尋完所有資料。

二分搜尋法快於線性搜尋法?
缺點:
二分搜尋法必須先排好順序,線性搜尋法不需要花時間。

第三關、第四關

二分搜尋法

二分搜尋法:
1.資料已事先排好順序。
2.每次都從「正中間」開始搜尋。
3.可以有效的縮小搜尋範圍,增加效率。

例如:進行「終極密碼」遊戲,一人為主持人,選定一個介於 1 ∼ 99 的數字為謎底,另一人為玩家來猜數字。每當玩家說出一個數字後,主持人就回覆 「太大」、「太小」或「答對」。

1資料必須已排序。
2 找出「待搜尋範圍」的「中間位置值」:


3比較:
(1)若中間位置值=目標,結束搜尋。
(2)若中間位置值≠目標,將「中間位置值與另一側的資料」排除。
4 重複2∼3,若已排除所有資料仍未找到,代表無目標資料,並結束搜尋。

適用狀況:
1.資料為「已排序」的遞增或遞減數列。
2. 搜尋方式: 每次都比對未被排除的資料的中間值,若不是目標,則刪除不可能存在目標的那一半資 料。
→每一次比較都使搜尋範圍縮小一半。

雜湊搜尋法一定比二分搜尋法、線性搜尋法快?
缺點:
若全部都停同船舶,則需要再花一點時間訂規則。

第五關、第六關

雜湊搜尋法

雜湊搜尋法:
 1.將資料照「特定規則」做分組。
 2.效率取決於規則的好壞。