999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab的選擇排序算法教學設計

2022-11-10 02:25:52衛澤剛張小丹趙軍娣劉飛錢
科技視界 2022年22期
關鍵詞:排序教學學生

衛澤剛張小丹* 趙軍娣劉 飛錢 郁

(1.寶雞文理學院物理與光電技術學院,陜西 寶雞 721016;2.寶雞高新鳳師實驗小學,陜西 寶雞 721016)

0 引言

Matlab和C語言都是面向工科專業開設的編程語言類專業基礎課,相對于C語言,Matlab操作更方便,編程語法更簡單,因此更易于學生學習。同時,Matlab也與其他編程語言有很多語法相通的地方,學好Matlab一方面可以提高學生的編程技能,加深對“軟件程序”這一概念的理解,另一方面還能對學習其他編程語言起到理解促進作用。排序作為計算機軟件數據處理中最基本的操作之一,已成為計算機編程語言學習的重要內容,其中對不同排序方法的理解與編程實現也是測試學生是否掌握編程語言學習的重要手段。因此,為了更好地使學生理解、掌握排序方法的排序過程,很多教學工作者研究了多種有效的教學手段。例如,張文慧著重分析了冒泡排序方法的特點,并以數據排序問題引導學生學會主動思考問題,并學會對問題進行總結歸納,培養學生獨立思考與總結能力;曹春梅等通過引導學生對冒泡排序及其改進算法的學習,著重提高學生的程序設計能力,可為相關算法與程序設計方面的進一步學習和研究打下良好基礎。本文針對非計算機專業Matlab語言與應用課程教學過程設計了循序漸進、由淺入深、難點分析、拓展練習的遞進式選擇排序教學過程,首先通過簡單形象例子詳細介紹了選擇排序算法的過程,其次用Matlab進行編程代碼實現,針對代碼難點進行重點分析,最后設計了兩個拓展練習題,加深學生對選擇排序算法的理解,并培養學生根據項要求獨立編寫程序的能力。

1 選擇排序算法教學設計

1.1 選擇排序算法過程

選擇排序算法是一種簡單直觀、易于學習的排序方法,其詳細排序過程(以升序排序為例)為:對于待排序數據,首先遍歷并比較所有數據,找到最小值后與第一個數據進行交換,此時第一個位置的數據就是所有數據中的最小值。然后再從第二個位置開始繼續尋找最小值,與第二個位置上的數據進行交換。以此類推,直到所有數據處理完畢。由于每次都選擇剩余數據中的最小值進行交換,因此稱此方法排序為選擇排序。

用一個簡單的例子對選擇排序過程進行詳細講解,加深學生對選擇排序的理解。如圖1所示,假如要對五個數據進行排序,五個待排序數據為:16、19、15、39、8。要求使用選擇排序方法對它們進行升序排序。首先進行第一趟排序,選取所有數據中的最小值8,并與第一個位置上的數據16交換,此時第一趟排序結束。然后進行第二趟排序,從第二個位置開始選取剩余數據(19、15、39、16)中的最小值15,再與第二個位置上的數據19進行交換,此時第二趟排序結束,且前兩個位置上的數據已排好序。然后進行第三趟排序,從第三個位置開始選取剩余數據(19、39、16)中的最小值16,與第三個位置上的數據19進行交換,此時第三趟排序結束,且前三個位置上的數據已排好序。然后進行第四趟排序,從第四個位置開始選取剩余數據(39、19)中的最小值19,與第四個位置上的數據39進行交換,此時第四趟排序結束,且前四個位置上的數據已排好序。第四趟排序后只剩下一個數據39,即為數據中的最大值,不需要進行額外操作,此時排序結束。圖1共排序四趟,即可得到最終的排序結果:8、15、16、19、39。圖1中綠色數字表示每一趟排序后已經排好序的數據部分。根據圖1可以得出,若數據的總個數為n,則需要n-1趟完成對整個數據的排序。

圖1 選擇排序示例(綠色數字表示每一趟排序后已經排好序的數據部分)

1.2 選擇排序代碼實現

通過上述對選擇排序算法的過程分析和實例的詳細圖解,可以將選擇排序每一趟操作過程總結為兩個步驟:(1)在剩余未排序數據中找到最小值;(2)用最小值與未排序數據的第一個數進行交換。基于此,選擇排序的操作就轉化為在數據中尋找最小值后再與數據進行交換的問題。其中找最小值可以使用打擂臺法,即按順序和后面的數據依次進行數值大小比較,選出最小值。數據交換問題可以用Matlab的元素賦值操作完成。結合以上分析,選擇排序的Matlab編程實現代碼如下:

function out=selectSort(data)%輸入待排序數據data,輸出排好序的out

n=length(data);%求取待排序數據的總個數n

for i=1:n-1 %外循環,總的排序趟數:n-1

min_num=data(i);%每一趟先取第一個數據作為最小值

min_index=i;%存取最小值的索引位置

for j=i+1:n %打擂臺法,與后面的數據依次比較大小

if min_num>data(j)%與每個數據比較大小

min_num=data(j);%存取最小值

min_index=j;%存取最小值的數據索引

end

end

temp=data(min_index);%提取最小值

data(min_index)=data(i);%數據交換

data(i)=temp;%數據交換

end

out=data;%輸出排好序的數據

end

1.3 代碼難點及分析

上述代碼以函數定義的形式對選擇排序算法進行編程實現,最直觀地體現了選擇排序的排序過程。其中有以下兩處代碼是學生難以理解的。(1)代碼第四行最小值賦值,有很多學生不理解為什么最小值初值選取數據的第i個元素。主要原因在于沒有理解排序算法每一趟最小值的選取問題。每一趟的最小值選取采用打擂臺方法,即把當前值(min_num)先作為最小值,然后再與后面的數據“打擂臺”,即依次比較大小,如果比當前最小值(min_num)小,就交換數據,否則不交換數據。通過與每個數據比較后即可將最小值選取出來。(2)數據交換過程(第12、13、14行)為什么要先定義一個臨時變量(temp)而不是直接對兩個數據進行賦值。這主要原因在于沒有將Matlab的賦值操作與現實問題有效結合。學生們都能直觀地理解交換兩個數據的概念,但是將其用編程語言實現就需要一定的“技巧”,如果直接按照以下代碼操作:data(min_index)=data(i);data(i)=data(min_index);,就會把原來data(min_index)數據丟掉,造成的結果就是data(min_index)和data(i)都變成同一個數據了。而通過提前定義一個臨時變量temp,就可以將最小值data(min_index)先保存起來,再賦值給變量data(i),完成數據的交換。

1.4 拓展練習設計

為進一步提高學生對選擇排序算法的理解與編程能力,在完全理解上述代碼排序的基礎上,增加以下兩個問題讓學生進行拓展訓練:(1)在2.2節代碼基礎上修改,完成選擇排序算法的降序排序過程,即將數據從大到小進行排序。(2)上述代碼會改變原始數據的排列,如何新建一個同樣大小的數組a,將每一趟選取的最小值依次放入數組a中并輸出,以保證原始數據未被修改。第一個拓展練習題用類似的代碼編程方式完成降序排序過程,可以加深學生對排序算法的理解。第二個拓展練習題可以提高學生的編程能力,如何根據項目需求進行思考,再將思考過程轉化成具體的代碼,同時可以讓學生們深刻認識到,實現相同的排序功能,代碼編寫方式可以是不一樣的。

2 結語

Matlab是一門應用性很強的實踐性課程,必須結合具體問題開展課程教學。本文以排序算法中簡單直觀的選擇排序算法入手,采用分階段、逐步遞進、難點分析、拓展練習的思路對選擇排序方法進行了詳細介紹,由淺入深、循序漸進,針對學生難以理解的代碼難點進行了深入分析,降低了學生用Matlab編寫選擇排序程序的難度。最后用兩個拓展練習,強化學生對選擇排序算法的理解,同時提高學生根據問題需求,編寫代碼解決問題的能力。

猜你喜歡
排序教學學生
排序不等式
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
恐怖排序
節日排序
趕不走的學生
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
學生寫話
學生寫的話
主站蜘蛛池模板: 久久精品国产亚洲麻豆| 亚洲色欲色欲www网| 国产又粗又猛又爽| 人妻精品久久久无码区色视| 婷婷中文在线| 国产成人欧美| 欧美怡红院视频一区二区三区| 国产亚洲欧美在线中文bt天堂| 久久夜色精品国产嚕嚕亚洲av| 婷婷99视频精品全部在线观看| 亚洲第一视频免费在线| 2021天堂在线亚洲精品专区| 亚洲av日韩av制服丝袜| av在线5g无码天天| 亚洲一区无码在线| 91视频免费观看网站| 国产在线小视频| 国产杨幂丝袜av在线播放| 亚洲人成网站色7799在线播放| 四虎影视永久在线精品| 网友自拍视频精品区| 另类综合视频| 免费啪啪网址| 亚洲精品自在线拍| 午夜日本永久乱码免费播放片| 日韩第九页| 伊伊人成亚洲综合人网7777| 毛片久久久| 亚洲三级影院| 91精品视频网站| 国产成年女人特黄特色毛片免| 国产大片黄在线观看| 久久免费看片| 99er这里只有精品| 成人免费午夜视频| 久久6免费视频| 波多野结衣久久高清免费| 久久6免费视频| 亚洲性视频网站| 国产凹凸一区在线观看视频| 日韩精品高清自在线| 国产成年女人特黄特色大片免费| 岛国精品一区免费视频在线观看| 午夜日b视频| 超清人妻系列无码专区| 国产精品白浆无码流出在线看| 亚洲 欧美 日韩综合一区| 国产肉感大码AV无码| 日韩在线中文| 超清无码一区二区三区| 99精品国产自在现线观看| 亚洲综合久久一本伊一区| 日韩毛片免费| 欧美精品1区2区| 伊伊人成亚洲综合人网7777| 久久频这里精品99香蕉久网址| 在线精品视频成人网| 亚洲第一国产综合| 亚洲天堂福利视频| 久久精品人人做人人爽97| 久久精品这里只有国产中文精品| 中文字幕日韩丝袜一区| 亚洲成aⅴ人片在线影院八| 亚洲人成人无码www| 狠狠五月天中文字幕| 性网站在线观看| 欧美日韩久久综合| 国产真实乱子伦精品视手机观看 | 成人av专区精品无码国产| 国产精品自拍合集| 国产一区二区三区夜色| 精品久久777| 國產尤物AV尤物在線觀看| 天天综合色网| 久久亚洲黄色视频| 日本欧美精品| 婷婷色一二三区波多野衣| 黄色不卡视频| 国内丰满少妇猛烈精品播| 国产成人精品第一区二区| 91美女视频在线| 国产在线麻豆波多野结衣|