資源簡介 (共25張PPT)義務教育信息科技(2024)五年級 第1課時第五單元 把數據排列有序五年級下冊第19課 冒泡排序齊體驗(2)12進一步認識冒泡排序算法,能夠對一組數據進行排序過程分析。能夠用程序驗證排序算法,觀察數據的排序過程,培養用算法解決問題的意識。學習目標第19課 冒泡排序齊體驗(2)上一課我們通過“排隊”活動,體驗了冒泡排序的算法步驟,下面通過對數據進行排序,分析冒泡排序的過程,并利用程序進行驗證與實現。 下課啦!第19課 課堂導入知識激趣 上一課我們通過“排隊”活動,體驗了冒泡排序的算法步驟,但對具體的數據排序認識還不夠深入。本課通過分析具體的數據排序,繼續探究、體驗其中的算法規律,并利用程序來進行驗證,了解算法的程序實現?!?br/>第19課 學習活動一 冒泡排序的過程分析二 驗證冒泡排序的算法學習活動第19課 學習活動找出最大數利用冒泡排序算法,把下面的最大數交換到最后(最右側)。一、冒泡排序的過程分析第19課 冒泡排序齊體驗(2)冒泡排序是穩定的原地排序算法,即相同的數據在排序后保持其原有的順序,編程實現也相對簡單?!?br/>第19課 冒泡排序齊體驗(2)但是,對于較大數量的數據,冒泡排序會很耗費時間,對于已經部分排序或接近完全排序的數據,效率也不高?!?br/>第19課 學習活動第1步:比較第一個數和第二個數,7>5,交換位置。一、冒泡排序的過程分析找出最大數第19課 學習活動第2步:比較第二個數和第三個數,7<9,不交換位置。一、冒泡排序的過程分析找出最大數第19課 學習活動第3步:比較第三個數和第四個數,9>3,交換位置。一、冒泡排序的過程分析找出最大數第19課 學習活動第4步:比較第四個數和第五個數,9>6,交換位置。一、冒泡排序的過程分析找出最大數第19課 學習活動第5步:比較第五個數和第六個數,9>8,交換位置。 第一輪比較完成,最大數“冒泡”到了最后,表明最大數已經歸位。一、冒泡排序的過程分析找出最大數第19課 學習活動 第一輪:把最大數交換到最后,前面已經完成。第二輪:返回最左邊,在第一個至第五個數中,利用“把最大數交換到最后”的方法,通過比較、交換找到它們中的最大數,把它排到第五的位置。從小到大排序一、冒泡排序的過程分析第19課 學習活動第三輪:返回最左邊,在第一個至第四個數中,通過比較、交換找到它們中的最大數,把它排到第四的位置。一、冒泡排序的過程分析從小到大排序第19課 學習活動 第四輪:返回最左邊,在第一個至第三個數中,通過比較、交換找到它們中的最大數,把它排到第三的位置。一、冒泡排序的過程分析從小到大排序第19課 學習活動 第五輪:返回最左邊,比較第一個數和第二個數,把較大的數排到第二的位置。一、冒泡排序的過程分析從小到大排序二、驗證冒泡排序的算法第19課 學習活動運行程序下面通過觀察、運行冒泡排序的程序,體會算法的實現。 第1步:打開配套資源中的“冒泡排序.py”程序。 第2步:觀察、運行程序,體驗冒泡排序的算法執行過程。二、驗證冒泡排序的算法第19課 學習活動分析程序第3步:大致了解程序與算法的對應關系?! ?br/>#初始數據#用外層循環控制排序的輪數#用內層循環控制每一輪的數據比較#如果前一個數大于后一個數#交換這兩個數#移動到下一個數#輸出當前數據的順序#進入下一輪比較#輸出排序結果data=[65,3,25,129,311,93,88,156,72,29,336,858,168,108,27]print('排序前數據:',data)n=len(data)i=0while ij=0while jif data[j] > data[j + 1]:data[j], data[j + 1] = data[j + 1], data[j]j=j+1print(f'第{i+1}輪遍歷: {data} ')i=i+1print('排序后數據:',data)二、驗證冒泡排序的算法第19課 學習活動運行程序第4步:嘗試修改程序中的排序數據,再運行程序,觀察變化。例如,可以在第一行中增加更多的數據。data=[65,3,25,129,311,93,88,156,72,29,336,858,168,108,27]1.通過情境體驗活動,加深了對冒泡排序算法的認識,感受到數據的比較與交換規律。2.一輪“冒泡”排序后,會固定當前未排序數中最大數的位置,因此這個數不需要再參與下一輪的比較,比較次數減少一次。3.通過利用程序驗證算法,初步體會到用計算機解決問題的重要性和必要性。第19課 課堂總結第19課 拓展與提升 1. “報數”排序游戲。 在10張卡片上分別寫下一個50以內的自然數,隨機分發給10位同學,然后選一位同學出來從1開始報數。當報的數與某張卡片上的數相同時,該同學就手持卡片站出來。繼續報數,直到50為止,手持卡片的同學按先后順序站成一排,這時發現,這10個數已經按順序排列。 用計算機解決排序問題時,也可以用以上“報數”的方法。計算機按順序數數,當數到的數與參與排序的某個數相同時,這個數就會被加入到已排序數的隊列中。第19課 拓展與提升 2. 在配套資源中,有用for循環實現的冒泡排序參考程序。打開并運行這個程序,觀察它與 while循環的不同之處,體會同一算法用不同程序實現的方法。 提示:在Python中,for循環語句的基本格式如下。 for 變量 in 序列: 循環體 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫