資源簡介 (共23張PPT)(義務教育版)五年級全一冊第14課算法效率比一比學習目標激趣導入學習活動思考-討論課堂練習課堂小結拓展與提升單元主題單元主題單元名稱 課名稱 核心內容第四單元 發揮算法的優勢 第13 課 讓計算機會數數 用循環結構解決問題時的重復過程,認識循環結構和計算機工作特點的關系。第14 課 算法效率比一比 解決同一個問題可以有不同的算法,不同的算法具有不同的效率。第15課 簡單密碼易破解 估算破解密碼所需的重復判斷次數和時間,利用枚舉法遍歷數據。學習目標激趣導入同學們,老師要把 8 顆不同顏色的珠子串成漂亮的手鏈。一種辦法是隨便拿珠子串,串了不合適就拆了重新串;另一種是先按顏色排好序再串。你覺得哪一種更好呢?學習活動學習活動活動1:用不同方法統計物體數量一思考-討論一、用不同方法統計物體數量一堆物體擺放如下圖所示,要統計有多少個,你能想到哪些方法?學習活動一、用不同方法統計物體數量第一種算法:把物體逐層進行累加。第二種算法:觀察圖形,發現可以用前面學習過的方法,即利用正反放置的兩個梯形組成平行四邊形,通過求平行四邊形中物體的個數來計算。s = (1+n)* n / 2=(1+10)*10/2= 55學習活動一、用不同方法統計物體數量通過比較發現:算法 1 簡單直觀,易于理解,算法 2 所用的步數較少,計算起來更快。從前面的分析可知,通過求“1+2+3+…+10”的兩種不同算法,說明解決同一個問題時,不同的算法會有不同的步驟,也就可能存在不同的效率。學習活動活動2:累加運算的效率分析二學習活動二、累加運算的效率分析通常,用計算機解決問題時會用以下兩種方法來比較算法的效率。一是比較算法運行所需要的時間。二是比較算法運行時所需的步數或者占用的資源。下面主要從時間上來進行分析。學習活動二、累加運算的效率分析大家聽過數學家高斯小時候計算“1+2+3+…+100”的故事吧?高斯使用第二種算法很快給出了答案,比其他孩子的速度都快。為什么會這樣呢?我們先來做一個“合理假設”:如果做 1 次加法用時 1 秒、做 1 次乘法用時 10 秒、做 1 次除法用時 15 秒。學習活動二、累加運算的效率分析用第一種算法計算:需要計算約 99 次加法,這樣即使每次加法只用 1 秒,而且每次中間相加的結果都正確,最終也需要大約 99 秒的時間才能計算出結果。用第二種算法來計算:只需要 1 次加法(即 100 + 1)、1 次乘法(即 101×100)和 1 次除法(即除以 2),需要約 1+10+15 = 26 秒。因此,單從計算步驟和時間上看,第二種算法似乎比第一種更高效。學習活動二、累加運算的效率分析但是,問題并沒有那么簡單。因為做乘法和除法時,通常比做加法需要更長時間。因此,如果以上假設并不成立,比如,如果做 1 次乘法或 1 次除法都需要 50 秒,那么用第二種算法所需的時間就會變成 1 + 50 + 50 =101 秒 。通過上述分析可知,從用算法解決問題的角度看,要準確地比較不同算法的效率,往往比我們預想的要難很多。通常需要從數據量、步驟多少、所需時間等方面綜合考慮。學習活動活動3:感受不同算法的運算效率三學習活動三、感受不同算法的運算效率解決同一個問題通常可以用不同的算法,選擇不同算法并編程實現后,程序一般會在運算速度、計算精度等方面有不同的表現。下面通過用程序驗證上述累加運算的兩種算法,體會算法的效率差異以及不同程序實現引起的差異。“累加 1.py”程序是用算式直接累加與用公式累加的對比。“累加 2.py”程序是用循環結構實現累加與用公式累加的對比。1、計算 1+2+3+...+100 的和,以下哪種算法是可行的?( D )A、依次相加:1+2=3,3+3=6,6+4=10,...,一直加到 100B、利用等差數列求和公式:(首項 + 末項)× 項數 ÷2C、先計算 1 到 50 的和,再計算 51 到 100 的和,最后將兩部分和相加D、以上都是課堂練習單選題2、在處理大數據量的問題時,選擇高效的算法主要是為了 ( B )A、使程序看起來更高級B、減少程序運行時間,提高處理速度C、減少程序的代碼量D、增加程序的可讀性課堂練習單選題課堂小結拓展與提升嘗試用兩種算法計算 1 到 1000 的和。(例:一種算法是從 1 開始一個一個加,另一種可以用首尾相加再乘個數除以 2)。并思考哪一種算法效率更高?https://www.21cnjy.com/recruitment/home/fine 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫