資源簡介 (共23張PPT)義務(wù)教育信息科技(2024)五年級(jí) 第1課時(shí)第五單元 把數(shù)據(jù)排列有序五年級(jí)下冊(cè)第17課 選擇排序輕松做12能夠梳理出選擇排序的基本步驟,通過補(bǔ)全流程圖,了解用流程圖描述的選擇排序算法。了解排序數(shù)據(jù)量與算法執(zhí)行次數(shù)的關(guān)系,能夠用程序驗(yàn)證選擇排序算法。學(xué)習(xí)目標(biāo)第17課 選擇排序輕松做排序算法有很多種,這一課學(xué)習(xí)比較簡單的選擇排序。下面通過對(duì) 5 個(gè)數(shù)進(jìn)行排序的探究活動(dòng)來學(xué)習(xí)這一內(nèi)容。第17課 課堂導(dǎo)入情境回顧 日常生活中,排序是很常見的事情,例如,把一堆水果按大小排序,把玩具球按直徑大小排序,一隊(duì)小朋友按身高排序,一個(gè)旅游團(tuán)按年齡排序,一些動(dòng)物按它們的奔跑速度排序…… 思考你還知道哪些場(chǎng)景需要排序呢?第17課 學(xué)習(xí)活動(dòng)一 描述選擇排序的算法三 驗(yàn)證選擇排序的算法二 分析選擇排序的過程學(xué)習(xí)活動(dòng) 桌上有5個(gè)盒子,分別以1、2、3、4、5編號(hào),每個(gè)盒子里裝有一張卡片,卡片上寫著一個(gè)大于0的數(shù)。 請(qǐng)依據(jù)這些卡片上的數(shù),把它們從大到小排序。12345 要求:寫著最大數(shù)的卡片放在1號(hào)盒子,寫著第二大數(shù)的卡片放在2號(hào)盒子,以此類推。第17課 學(xué)習(xí)活動(dòng)問題提出一、描述選擇排序的算法在排序算法中,如何將五個(gè)無序的數(shù)進(jìn)行排序呢?12345最大數(shù)12345次大數(shù)第17課 學(xué)習(xí)活動(dòng)一、描述選擇排序的算法問題分析第17課 學(xué)習(xí)活動(dòng)一、描述選擇排序的算法 第1步:用前一課所學(xué)方法,找出最大數(shù)的卡片所在盒子。 第2步:把寫著最大數(shù)的卡片與1號(hào)盒子里的卡片進(jìn)行交換。 第3步:以此類推,在2號(hào)到5號(hào)盒子里,用“找出最大數(shù)”的方法,繼續(xù)查找其中最大數(shù)的卡片,找到后與對(duì)應(yīng)盒子里的卡片進(jìn)行交換。基本步驟第1步:把卡片放入盒子,已排序個(gè)數(shù)設(shè)為0。第2步:在未排序數(shù)中找到最大數(shù),與未排序的第一個(gè)數(shù)交換位置。第3步:重復(fù)第2步,依次查看所有數(shù)并交換到相應(yīng)的位置。第4步:按順序呈現(xiàn)5個(gè)數(shù)。第17課 學(xué)習(xí)活動(dòng)一、描述選擇排序的算法以上操作,其實(shí)也形成了一個(gè)具有循環(huán)結(jié)構(gòu)的算法。算法描述看懂流程圖后,指出“搜索、交換位置、改變搜索范圍”等操作所在的步驟。第17課 學(xué)習(xí)活動(dòng)一、描述選擇排序的算法算法描述二、分析選擇排序的過程1(108)2(24)3(12)4(91)5(35)5張卡片上有5個(gè)數(shù),如108、24、12、91、35。運(yùn)用前面所學(xué)選擇排序算法,完成五個(gè)數(shù)從小到大的排序,驗(yàn)證算法執(zhí)行的步驟,記錄卡片交換的次數(shù),填寫任務(wù)單。第17課 學(xué)習(xí)活動(dòng)任務(wù)要求根據(jù)選擇排序算法執(zhí)行過程,用☆找出未排序數(shù)據(jù)中的最大值,與未排序數(shù)中最前面的數(shù)進(jìn)行交換,并記錄每一輪排序結(jié)果。第17課 學(xué)習(xí)活動(dòng)排序過程分析二、分析選擇排序的過程 分析選擇排序算法每輪的執(zhí)行次數(shù)。第17課 學(xué)習(xí)活動(dòng)二、分析選擇排序的過程排序過程分析 學(xué)習(xí)選擇排序算法后,有一位同學(xué)說:“我觀察一下就能把這5個(gè)數(shù)排好順序,不必反復(fù)操作,計(jì)算機(jī)有點(diǎn)笨呀!” 你認(rèn)同這個(gè)說法嗎?與小組同學(xué)交流你的想法。第17課 學(xué)習(xí)活動(dòng)二、分析選擇排序的過程思考交流 在上一課的學(xué)習(xí)中,用程序?qū)崿F(xiàn)并驗(yàn)證了“找出最大數(shù)”的算法。 找到最大數(shù)后,通過多次比較和交換,可以把列表中的數(shù)按照從大到小或從小到大的順序排列,從而實(shí)現(xiàn)排序。第17課 學(xué)習(xí)活動(dòng)算法實(shí)現(xiàn)三、驗(yàn)證選擇排序的算法打開參考程序并運(yùn)行,利用程序?qū)崿F(xiàn)選擇排序算法,把數(shù)據(jù)由大到小排序。第17課 學(xué)習(xí)活動(dòng)程序驗(yàn)證三、驗(yàn)證選擇排序的算法data = [64, 25, 12, 22, 11, 90, 88, 77, 55, 33] # 要排序的數(shù)據(jù)列表n = len(data) # 獲取列表數(shù)據(jù)的個(gè)數(shù)i = 0 #設(shè)置外層循環(huán)控制變量的初始值while i < n - 1: # 外層循環(huán)用于控制排序的輪數(shù)max = i # 最大值變量設(shè)為當(dāng)前輪數(shù)的起始值j = i + 1 #設(shè)置內(nèi)層循環(huán)控制變量的值while j < n: # 內(nèi)層循環(huán)用于找到未排序數(shù)中的最大數(shù)if data[j] > data[max] : #如果找到的值更大就更新最大數(shù)max = jj = j+1if max != i: # 如果最大數(shù)不在指定位置就交換位置data[i], data[max] = data[max], data[i]i = i+1 # 進(jìn)入下一個(gè)數(shù)的排序print('排序后的數(shù):', data) # 輸出排序后的列表 大致了解程序與算法的對(duì)應(yīng)關(guān)系,找到其中的循環(huán)結(jié)構(gòu)。第17課 學(xué)習(xí)活動(dòng)循環(huán)結(jié)構(gòu)三、驗(yàn)證選擇排序的算法 嘗試修改第一行參與排序的數(shù)據(jù)個(gè)數(shù),保存程序后再次運(yùn)行,觀察輸出結(jié)果的變化。第17課 學(xué)習(xí)活動(dòng)三、驗(yàn)證選擇排序的算法 data = [64, 25, 12, 22, 11, 90, 88, 77, 55, 33]程序修改 1.選擇排序是計(jì)算機(jī)完成排序任務(wù)時(shí)常用的一種排序算法。2.選擇排序算法借助在特定范圍內(nèi),尋找最大數(shù)或最小數(shù)并交換位置的方式進(jìn)行排序。3.通過探究選擇排序與找出最大值或最小值之間的關(guān)系,可以了解算法的內(nèi)在聯(lián)系。第17課 課堂總結(jié) 在Python中,可以使用sorted( )函數(shù)來進(jìn)行排序,編程驗(yàn)證與實(shí)現(xiàn)算法時(shí)更加簡單便捷。 打開配套資源中的參考程序,觀察并運(yùn)行,體會(huì)用程序?qū)崿F(xiàn)算法的多樣性,感受多途徑解決問題的過程。第17課 拓展與提升下課啦! 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫