基本演算法介紹-搜尋2


搜尋演算法總結

搜尋演算法應用 -資訊安全名畫神偷(Art Thief )遊戲

解說:

 

資料來源:Animations from Grokking Algorithms

原始影片https://goo.gl/NM3eku

搜尋方法的時間複雜度(花費時間)

資料引用:108課綱康軒第二章

範例

進階研究與實作

圖片引用:108課綱高中一年級高中資訊科技科友出版社


循序(線性)搜尋法Scratch程式實作

循序搜尋演算法

圖片引用:108課綱高中一年級高中資訊科技科友出版社

一.程式執行結果(搜尋1-100的數(可重複))

二.參考程式下載(不一定要和老師一樣.可以有自己的邏輯思維)

實作步驟:

1.建立data清單隨機產生10個(1-100)的數字

2.點貓咪開始搜尋.詢問使用者(輸入)要搜尋的數字範圍(1-100).呼叫執行循序搜尋函數

3.撰寫循序搜尋函數

(1)變數初始化

key(答案)

i位置(索引值)

found(找到與否的flag(旗標).1代表找到.0代表沒找到)

(2)重複清單長度次

(3)如果key(答案)=清單的第i位置(索引值)那麼

說出"找到了.在第i位置(索引值)位置"

found設為1

否則i位置(索引值)改變1.繼續尋找清單內的元素

(4)如果found為0那麼

說出"找不到你要的數字"

三.測試程式

1.輸入清單的第1項數字.貓咪要說"找到了,在第1個位置"

2.輸入清單的第10項數字.貓咪要說"找到了,在第10個位置"

3.輸入清單內沒有的數字.貓咪要說"找不到你要的數字"


進階研究

二分搜尋法

(1)Scratch程式實作

(2)Python程式實作(高中)

https://colab.research.google.com/drive/1-Y-YZ36xL3L2Tra8Zr-eAs-_FoTrDZR7?usp=sharing#scrollTo=-v2ojuuvSPZs