教科版高二選擇性必修1信息技術(shù)第3單元第2課《數(shù)據(jù)的排序》課件_第1頁(yè)
教科版高二選擇性必修1信息技術(shù)第3單元第2課《數(shù)據(jù)的排序》課件_第2頁(yè)
教科版高二選擇性必修1信息技術(shù)第3單元第2課《數(shù)據(jù)的排序》課件_第3頁(yè)
教科版高二選擇性必修1信息技術(shù)第3單元第2課《數(shù)據(jù)的排序》課件_第4頁(yè)
教科版高二選擇性必修1信息技術(shù)第3單元第2課《數(shù)據(jù)的排序》課件_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

3.2數(shù)據(jù)的排序高中信息技術(shù)/教科版/選擇性必修1目錄1.情境導(dǎo)入3.討論探究2.體驗(yàn)探究4.課堂小結(jié)1.情境導(dǎo)入網(wǎng)上商城平臺(tái)是如何實(shí)現(xiàn)按價(jià)格、銷量等進(jìn)行升序或降序排序,并顯示商品信息的呢?本節(jié)圍繞“按序查看商品”項(xiàng)目展開(kāi)學(xué)習(xí),通過(guò)項(xiàng)目活動(dòng)學(xué)習(xí)常見(jiàn)的排序算法,體會(huì)迭代方法的具體應(yīng)用,理解數(shù)據(jù)結(jié)構(gòu)與算法的關(guān)系。本節(jié)主要包含“按價(jià)格升序顯示商品”和“按銷量降序顯示商兩個(gè)任務(wù)。2.體驗(yàn)探究

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)1初步嘗試排序下面是某網(wǎng)上商城的簽字筆銷售數(shù)據(jù),請(qǐng)將表中數(shù)據(jù)按價(jià)格從低到高進(jìn)行排序,將排序后的結(jié)果填入對(duì)應(yīng)的表格中。品牌銷量/盒價(jià)格/元評(píng)論數(shù)/條博士8066108英雄1887886永輝23658186晨輝20046190得利566850梅花1852692簽字筆銷售數(shù)據(jù)

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)1初步嘗試排序品牌銷量/盒價(jià)格/元評(píng)論數(shù)/條填一填按價(jià)格從低到高排序后的簽字筆銷售數(shù)據(jù)梅花1852692晨輝20046190永輝23658186博士8066108得利566850英雄1887886你是如何排序的呢?對(duì)簽字筆銷售數(shù)據(jù)按照價(jià)格從低到高進(jìn)行排序的過(guò)程就是整理數(shù)據(jù)順序的過(guò)程。通過(guò)比較價(jià)格的大小,調(diào)整數(shù)據(jù)的順序。在整理的過(guò)程中,只調(diào)整數(shù)據(jù)的排列順序,不改變數(shù)據(jù)內(nèi)容。排序(sorting)就是整理數(shù)據(jù)的順序,使其從無(wú)序變?yōu)橛行颉E判虻母拍?.討論探究

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)2體驗(yàn)冒泡排序過(guò)程博士66英雄78永輝58晨輝46得利68梅花26不交換博士66英雄78永輝58晨輝46得利68梅花26交換博士66永輝58晨輝46英雄78得利68梅花26交換博士66永輝58晨輝46得利68英雄78梅花26博士66永輝58晨輝46得利68梅花26英雄78交換交換在未排序的簽字筆銷售數(shù)據(jù)中找到價(jià)格最高者放在序列的末尾,這樣未排序的簽字筆銷售數(shù)據(jù)就會(huì)減少1個(gè)。若干次迭代后,當(dāng)未排序的簽字筆銷售數(shù)據(jù)只剩下一個(gè)時(shí),排序就完成了。第1次迭代過(guò)程

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)2體驗(yàn)冒泡排序過(guò)程經(jīng)過(guò)5次“比較一交換”,第1次迭代后價(jià)格的序列是:66,58,46,68,26,78。根據(jù)這個(gè)思路,補(bǔ)全圖3.2.3,完成第2次迭代過(guò)程。博士66永輝58晨輝46得利68梅花26英雄78英雄78英雄78英雄78交換永輝58晨輝46博士66得利68梅花26永輝58晨輝46博士66得利68梅花26永輝58晨輝46博士66梅花26得利68交換不交換交換第2次迭代過(guò)程

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)2體驗(yàn)冒泡排序過(guò)程填一填第2次迭代后價(jià)格的序列是:

,未排序的數(shù)據(jù)剩下

個(gè)。第3次選代后價(jià)格的序列是:

,未排序的數(shù)據(jù)剩下

個(gè)。第4次迭代后價(jià)格的序列是:

,未排序的數(shù)據(jù)剩下

個(gè)。第5次選代后價(jià)格的序列是:

,未排序的數(shù)據(jù)剩下

個(gè)。經(jīng)過(guò)5次迭代,最后完成了6個(gè)簽字筆銷售數(shù)據(jù)按照價(jià)格升序排列。58,46,66,26,68,78446,58,26,66,68,78346,26,58,66,68,78226,46,58,66,68,781

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)3建立數(shù)據(jù)結(jié)構(gòu)冒泡排序(bubblesort)是一種通過(guò)“比較一交換”進(jìn)行排序的方法,首先將第1個(gè)數(shù)據(jù)和第2個(gè)數(shù)據(jù)進(jìn)行比較,若為逆序,則將兩個(gè)數(shù)據(jù)交換位置;然后比較第2個(gè)數(shù)據(jù)和第3個(gè)數(shù)據(jù),以此類推,直至最后兩個(gè)數(shù)據(jù)進(jìn)行過(guò)“比較一交換”為止。上述過(guò)程稱作第一趟“冒泡”,其結(jié)果使得最大的數(shù)據(jù)被放到最后的位置上。之后對(duì)除了最大數(shù)據(jù)之外的剩余部分進(jìn)行下一趟“冒泡”,經(jīng)過(guò)若干趟“冒泡”后,如果剩余部分只包含一個(gè)數(shù)據(jù),則冒泡排序完成。冒泡排序

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)3建立數(shù)據(jù)結(jié)構(gòu)為了便于對(duì)簽字筆銷售數(shù)據(jù)進(jìn)行處理,定義簽字筆商品類,其Python代碼如下。01.#定義簽字筆商品類02.classpen:03.def__init__(self,brand,sales,price,comments)04.self.brand=brand

#品牌05.self.sales=sales

#銷量06.self.price=price

#價(jià)格07.ments=comments

#評(píng)論數(shù)

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)3建立數(shù)據(jù)結(jié)構(gòu)創(chuàng)建一個(gè)線性表對(duì)象alist,存放表3.2.1所示的簽字筆銷售數(shù)據(jù)對(duì)象。請(qǐng)補(bǔ)全下面的代碼。08.fromlinearListimportLinearList

#導(dǎo)入線性表09.alist=LinearList()

#創(chuàng)建線性表對(duì)象"10.alist.appendItem(pen("博士",8,66,108))

#添加簽字筆數(shù)據(jù)元素11.alist.appendItem(pen("英雄",188,78,86))

#添加簽字筆數(shù)據(jù)元素12.alist.appendItem(pen("永輝",236,58,186))

#添加簽字筆數(shù)據(jù)元素13alist.appendItem(pen())#添加簽字筆數(shù)據(jù)元素14.alist.appendItem(pen())#添加簽字筆數(shù)據(jù)元素15.alist.appendItem(pen())#添加簽字筆數(shù)據(jù)元素‘晨輝’,200,46,190‘得利’,56,68,50‘梅花’,185,26,92

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)4算法設(shè)計(jì)與實(shí)現(xiàn)假設(shè)有n個(gè)簽字筆銷售數(shù)據(jù),冒泡排序的算法描述如下:(1)進(jìn)行n-1趟“冒泡”過(guò)程,每趟操作如步驟(2)和(3),如果未完成則繼續(xù)進(jìn)行操作。第1趟的冒泡范圍是n個(gè)數(shù)據(jù)(2)從第1個(gè)數(shù)據(jù)開(kāi)始,依次比較相鄰兩個(gè)數(shù)據(jù),如果逆序則交換位置,直到比較完最后兩個(gè)數(shù)。冒泡范圍內(nèi)的最大數(shù)據(jù)會(huì)被交換到最后的位置上。(3)將本趟的最大數(shù)據(jù)排除出“冒泡”操作范圍。根據(jù)上述算法,定義冒泡排序函數(shù)bubbleSort(alist,key),參數(shù)alist表示需要排序的線性表,key表示排序的關(guān)鍵詞。請(qǐng)補(bǔ)全下面的代碼。

任務(wù)一

按價(jià)格升序顯示商品

活動(dòng)4算法設(shè)計(jì)與實(shí)現(xiàn)16.#冒泡排序算法17.defbubbleSort(alist,key):

18.foriinrange(alist.size()-1):

#控制“冒泡”趟數(shù)19.#控制“冒泡”范圍20.forjinrange(1,alist.size()-i):

21.#相鄰兩數(shù)比較22.ifgetattr(

,key)>getattr(alist.getItem(j),key):23.temp=alist.getItem(j-1)24.alist.setItem(j-1,alist.getItem(j))25.alist.setItem(j,

#交換位置alist.getItem(j-1)temp

任務(wù)二

按銷量降序顯示商品

活動(dòng)1體驗(yàn)直接插入排序過(guò)程如何將表中的所有數(shù)據(jù)按照銷量從高到低進(jìn)行排序呢?第1個(gè)簽字筆銷售數(shù)據(jù)已經(jīng)有序,把待排序的簽字筆銷售數(shù)據(jù)按照銷量插入到有序序列的合適位置,有序數(shù)據(jù)就增加1個(gè)。這樣迭代若干次后,直到所有的待排序簽字筆銷售數(shù)據(jù)插入完為止,排序就完成了。比較插入

任務(wù)二

按銷量降序顯示商品

活動(dòng)1體驗(yàn)直接插入排序過(guò)程銷量是80的簽字筆銷售數(shù)據(jù)是有序子序列,把銷量為188的簽字筆銷售數(shù)據(jù)插入。比較80和188的大小,80<188,將銷量為80的簽字筆銷售數(shù)據(jù)后移一個(gè)位置,將銷量為188的簽字筆銷售數(shù)據(jù)插入到它的前面。第1次迭代后銷量的序列是:188,80,236,200,56,185。第1次迭代

任務(wù)二

按銷量降序顯示商品

活動(dòng)1體驗(yàn)直接插入排序過(guò)程第2次迭代:插入銷量為236的簽字筆銷售數(shù)據(jù),從有序子序列(188,80)的最后1個(gè)數(shù)據(jù)開(kāi)始,將銷量為236的簽字筆銷售數(shù)據(jù)與序列中的數(shù)據(jù)逐一比較大小,確定插入位置。比較80和236,80<236。將銷量為80的簽字筆銷售數(shù)據(jù)后移一個(gè)位置;比較188和236。188<236,將銷量為188的簽字筆銷售數(shù)據(jù)后移一個(gè)位置,將銷量為236的簽字筆銷售數(shù)據(jù)插入到它的前面。經(jīng)過(guò)兩次比較后確定位置并插入,第2次迭代后銷量的序列是:236,188,80,200,56,185。第2次迭代

任務(wù)二

按銷量降序顯示商品

活動(dòng)1體驗(yàn)直接插入排序過(guò)程請(qǐng)?jiān)谙旅娴臋M線上依次寫(xiě)出其他各次迭代的結(jié)果。第3次迭代::插入

,迭代后銷量的序列是:

;

第4次迭代:插入

,迭代后銷量的序列是:

;第5次迭代:插入

,迭代后銷量的序列是:

;經(jīng)過(guò)5次迭代,最后完成了6個(gè)簽字筆銷售數(shù)據(jù)按照銷量降序排列。填一填200236,200,188,80,56,18556236,200,188,80,56,185185236,200,188,185,80,56

任務(wù)二

按銷量降序顯示商品

活動(dòng)1體驗(yàn)直接插入排序過(guò)程直接插入排序(straightinsertionsort)是一種通過(guò)“比較一插入進(jìn)行排序的方法?;静僮魇菑挠行蜃有蛄械淖詈笠粋€(gè)數(shù)據(jù)開(kāi)始,待排序的數(shù)據(jù)與有序子序列中的所有數(shù)據(jù)逐一進(jìn)行比較,確定插入的位置并插入數(shù)據(jù)。上述過(guò)程稱作一次插入操作,其結(jié)果是將一個(gè)數(shù)據(jù)插入到已經(jīng)排好序的數(shù)據(jù)序列中,從而得到一個(gè)新的、數(shù)據(jù)數(shù)量增加一個(gè)的有序子序列。對(duì)未排序的數(shù)據(jù)進(jìn)行相同的操作,重復(fù)若干次插入操作,直到所有的未排序數(shù)據(jù)插入完為止,則插入排序完成。直接插入排序

任務(wù)二

按銷量降序顯示商品

活動(dòng)2直接插入排序算法的設(shè)計(jì)與實(shí)現(xiàn)分析活動(dòng)1中排序過(guò)程和直接插入排序的基本思想,假設(shè)有n個(gè)簽字筆銷售數(shù)據(jù),實(shí)現(xiàn)直接插入排序的算法描述如下:(1)進(jìn)行n-1次插入操作,每次操作如步驟(2)和(3),如果未完成則繼續(xù)進(jìn)行。默認(rèn)第1個(gè)數(shù)據(jù)是有序子序列。(2)取得當(dāng)前待排序數(shù)據(jù),從有序數(shù)據(jù)序列的最后一個(gè)數(shù)據(jù)開(kāi)始,待排序數(shù)據(jù)與其逐一進(jìn)行比較,如果大于對(duì)方則后移該數(shù)據(jù),確定插入位置。(3)將待排序數(shù)據(jù)插入到有序數(shù)據(jù)序列中。

任務(wù)二

按銷量降序顯示商品

活動(dòng)2直接插入排序算法的設(shè)計(jì)與實(shí)現(xiàn)根據(jù)上述算法,定義insertionSort(alist,key)函數(shù),參數(shù)alist表示要排序的線性表,key表示排序的關(guān)鍵詞。請(qǐng)補(bǔ)全下面的代碼。16.#直接插入排序算法17.definsertionSort(alist,key):18.#默認(rèn)第1個(gè)數(shù)據(jù)已有序,控制插入次數(shù)19.foriinrange(1,alist.size()):20.currentdata=alist.getItem(i)

#取當(dāng)前待排序數(shù)據(jù)21.j=i22.#與待排序數(shù)據(jù)進(jìn)行比較

任務(wù)二

按銷量降序顯示商品

活動(dòng)2直接插入排序算法的設(shè)計(jì)與實(shí)現(xiàn)23.whilej>andgetattr(alist.getItem(j-1),key)<24.getattr(

)25.alist.setItem(j,alist.getItem(j-1))

#后移數(shù)據(jù)26.j=j-1

#確定插入位置27.alist.setItem(j,

)#插入數(shù)據(jù)currentdata,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論