• 沒有找到結果。

全華資訊科技第2章常見的演算法

N/A
N/A
Protected

Academic year: 2021

Share "全華資訊科技第2章常見的演算法"

Copied!
42
0
0

加載中.... (立即查看全文)

全文

(1)

第02章 常見的演算法

(2)

2

(3)

3

(4)

4

(5)

2-1

演算法簡介

演算法(Algorithm):將解決問題的方法

(6)

演算法的表示法

流程圖(Flowchart)使用簡單明瞭的圖案、

(7)
(8)

解題策略

暴力法(Brute Force)將所有可能性列舉出 來後,再從中找出答案。圖中的場館與道路變多,可能路線的數量 便會大量的增加,使得整個演算法變得非 常沒有效率。

(9)

解題策略

貪心法(Greedy Method):選擇當下最有

(10)

只考慮當前最佳情況(如目前最短),有 時候並沒有辦法達成全局最佳解(如總路 徑最短) 將2改為5 真正的最短路徑應該是「入口企鵝館狐狸館」, 長度是7。

(11)

解題策略

分治法(Divide and Conquer)又稱各個擊破

法,也就是將問題拆解成一個個的小問題,各 個擊破後,再將這些小問題的解答合併與統整, 變成原問題的答案。初次學習游泳時,教練經常把游泳的姿勢分成手部划水動作腳部踢水動作頭部換氣動作我們會分別練習這三個部位的姿勢,熟練之後 再組合成完整的游泳姿勢。

(12)

分治法範例

分(Divide):將數列 <4, 1, 3, 2>分割為數列 <4, 1>及<3, 2>,再進 行下一次的分,直到數 列不能再分割治(Conquer):將分 割的數列兩兩合併,並 將數字按大小排序,直 到所有分割的數列合併 為一,且排序完畢為止。

(13)

13

八皇后問題(1/2)

✓ 解 無解 ✓ 無解 ✓ ✓ ✓

(14)

14

八皇后問題(2/2)

所有皇后的Y座標不相同,即𝑌𝑌𝑖𝑖 ≠ 𝑌𝑌𝑗𝑗 (如果𝑖𝑖 ≠ 𝑗𝑗) 解 所有皇后不在同一對角線上,即|𝑋𝑋𝑖𝑖 − 𝑋𝑋𝑗𝑗| ≠ |𝑌𝑌𝑖𝑖 − 𝑌𝑌𝑗𝑗| (如果𝑖𝑖 ≠ 𝑗𝑗) 是 是

(15)

15

2-2

常用的演算法

1 網路流行用語「 C 位 」是指 C e nt er 、 中間、 核心位置的意思。 ✓ 解 ✓ 有理,這樣每年都是相同的人坐在C位。 提示:採上述的排序法再結合每年輪流法。或抽籤,即隨機法。或先到先搶位法。

(16)

2-2

常用的演算法

氣泡排序法(Bubble Sort)是透過數個回合

(17)

氣泡排序法的例子(1/4)

考慮陣列的索引值常從0開始, 這裡從第0回合算起

(18)
(19)
(20)
(21)
(22)
(23)

選擇排序法

選擇排序法(Selection Sort)每一回合都選 出剩下的數字中最大的一個,將它排在對 應的位置(最大的排在最前面,第二大的 排在第二個,以此類推)若要排序N個數字,需要N個回合

(24)
(25)
(26)

循序搜尋法

循序搜尋法(Sequential Search)從數列的

頭走到數列的尾,逐一檢查每一個元素, 直到找到目標數值或是檢查完所有數值 (目標數值不在數列當中)為止

(27)

循序搜尋法的流程圖

(28)
(29)

二分搜尋法

二分搜尋法(Binary Search)是指從已經排 序好的數列中進行搜尋每次都淘汰一半的數字,從剩下的數字中 尋找目標值,這個過程會不斷重複,直到 找到目標數值或是檢查過數列中所有的數 字為止。

(30)
(31)
(32)
(33)

遞迴

遞迴(Recursion)是將待解的問題轉化成 一個相同類型的子問題,該子問題的解決 方法仍與原問題的解法相同,通常這個過 程會重複數次每次的遞迴都會縮小問題的範圍必須有終止遞迴條件,否則會無止境地遞迴

(34)

在階乘運算中運用遞迴的概念

將原問題「n的階乘」拆成n乘「n-1的階 乘」,新問題「n-1的階乘」與原本的問題 類型相同新問題比原問題的規模小,即由「n」變為 「n-1」整個遞迴的過程,重複數次,直到規模夠 小為止,即「1的階乘」。因為「1的階乘」 規模足夠小,直接解決這個小問題,不用 再繼續遞迴

(35)
(36)

2-3

演算法效能分析

使用 「複雜度」(Complexity)來評估演

算法的效能

(37)

效能分析實例(1/3)

在1到10中搜尋正確答案9,如果採用循序 搜尋,需要猜9次才能猜到正確答案;反之, 使用二分搜尋時,因為每次能去除一半的 可能性,所以只要猜3次就能猜到正確答案,二分搜尋的效率似乎比循序搜尋快

(38)

效能分析實例(2/3)

有N個數的數列中搜尋,最壞的情況下,循

序搜尋法會從頭到尾逐項搜尋,共搜尋N次

二分搜尋法如果沒有搜尋到時,每次會將

(39)

效能分析實例(3/3)

當N越來越大時,搜尋次數或搜尋時間的差

(40)
(41)
(42)

參考文獻

相關文件

• 與資訊科技科、常識科、視藝科進行跨 科合作,提升學生資訊素養能力。圖書

媒體可以說是內容、資訊最大的生產者,但受制於 國際社交媒體及搜尋平台的經營手法,本地主流媒 體在發展網上業務時,面對不公平的競爭。 這些

此行文字的特別意義,是讓 MATLAB 藉由 lookfor 指令 搜尋並顯示此函式用途。.. 語法:

單一菜色與地區搜尋 ( 兩種二選一 ) 交叉搜尋 (4 種可同時 )/QR 碼搜尋.

(答案宜正反看法都能兼顧,如只單純提出一面的答案,最多得 3 分;能 同時指出兩面答案者,最多得 4 分。).. 4

明龍計算一題兩個數相加的數學題目,不小心算成了相減,所得到的答

•  三分搜在有水平線的情況下,如果可以確定水平線的地方一定是 答案的話,才可以用三分搜找極值。..