国产丁香婷婷妞妞基地-国产人人爱-国产人在线成免费视频麻豆-国产人成-91久久国产综合精品-91久久国产精品视频

公務員期刊網 論文中心 正文

C語言中冒泡排序算法教學設計

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了C語言中冒泡排序算法教學設計范文,希望能給你帶來靈感和參考,敬請閱讀。

排序是計算機科學中一項重要的技術,其應用范圍廣、使用頻率高,因此對于排序算法的研究一直是計算機專家的重點。高校的程序設計類課程也將排序算法作為重難點進行教學。

1常見的幾種排序算法

1.1算法的基本概念

算法(Algorithm)是指解題方案的準確而完整的描述,是一組解決問題的指令集合,按照一定的語法規則輸入,在有限時間內獲得所要求的輸出。簡單說就是計算機的解題過程。算法具備以下幾個特征:有窮性,一個算法的執行次數必須是有限的;確切性,算法的中的語句都應該具有確切的語義;輸入,算法可以有0個或多個輸入,給運算對象賦初值;輸出,算法應該有一個或多個輸出,顯示算法的運行結果;可行性,算法的設計在原則上是可行的。

1.2排序算法的簡述

常見的幾種排序算法有:冒泡排序、選擇排序、快速排序、計數排序以及托普排序等。冒泡排序(BubbleSort),是最簡單的排序方法,其基本思想是:將要排序的元素看成是一組豎排的“氣泡”,較小的元素較輕,往上浮,通過若干次對這個“氣泡”序列的處理,讓最輕的浮到最上面,次輕的次之,依次完成排序。按照一般的教學方法,老師會先向學生講解冒泡排序的基本思想和相應代碼然后再執行。這種方式學生理解和掌握起來比較困難,也無法調動學生的學習積極性,更無法使學生靈活運用。因此,要設計出一個合理、高效的教學過程,調動學生的學習積極性,拓展學生的自主思維能力,使學生掌握冒泡排序算法的思想及其編程方法,并運用到解決實際問題當中。

2教學過程設計

2.1利用多媒體動態分解排序步驟

通過多媒體軟件將排序過程設計為動態效果,演示數據序列的交換過程。相鄰數據進行比較,大數下沉、小數上浮。這樣能直觀地展現冒泡序的過程,提高學生的學習興趣。

2.2排序過程動態解析

下面通過實例來說明冒泡排序的過程,設計排序的數據序列為:5,7,3,0,6五個數,進行升序排列,其過程分析如下。第一趟排序:先讓最上面相鄰兩個數字進行比較,如果上面的數大于后面的數,就交換兩者的位置,再將交換后的數依次與后面的數進行比較,經過4次這樣的比較,就可以讓最大的數“沉底”。第二趟排序:對剩下的4個數字,再進行兩兩比較,同前面過程一樣,經過3次比較,第二大的數就排到了倒數第二個位置。第三趟排序:對剩下的3個數,再進行兩兩比較,同前面過程一樣,經過2次比較,第三大的數排到了倒數第三個位置。第四趟排序:對剩下的2個數進行兩兩比較,過程同上,經過1次比較,第四大的數排到了倒數第四個位置。從而完成的本次排序。

2.3給出代碼與分析

根據前面對排序過程的分析可知,如有n個數要進行排序,則可總結出以下步驟:排序的趟數為n-1;相鄰兩數從前往后比;每趟比較n-1-i次;大小不對就交換。按照總結的步驟給出完成相應功能的代碼,學生接受和理解起來更加容易。其主要代碼如下:1For(i=0;i<n;i++)/*排序的趟數為n-1*/2{For(j=0;j<n-1-i;j++)/*相鄰兩數從前往后比,每趟比較n-1-i次*/3If(a[j]>a[j+1])/*大小不對就交換*/4{temp=a[j];5a[j]>a[j+1];6a[j+1]=temp;7}8}通過教學實踐證明,冒泡排序的思想容易理解,學生在將其轉換為程序言時較難,通過將排序過程作以上步驟總結后,學生在寫程序時只需安排步驟進行代碼編寫,簡單易行。再讓學生自己舉例,分析程序的執行過程,驗證冒泡排序的思想和代碼的正確性。

2.4引導學生發現問題,改進算法

在教學中讓學生跟著老師的思路理解并掌握知識點很重要,但同時引導學生發現算法設計中存在的問題或者不完善的地方,由此探索解決辦法,也是教學的一個重要目的。觀察分析排序過程的表1可發現,最后兩趟的數據順序是一致的,也就是說倒數第二趟排序就已經排序完成了,最后一趟排序過程是多余的。由此可見,不管初始數據序列如何,根據上面的算法設計都要進行n-1趟排序,而在實際序列中,可能在少于n-1趟的排序中就已經變成了有序序列,完成了排序,后面的循環就沒有必要了。這時老師可給出一個常規的改進算法:設置一個標志變量flag,如flag=1,表示有交換;flag=0,表示無交換。即是當flag=0時就結束循環,提高排序效率。具體做法是:在上述程序第1行下插入語句“flag=0;”,第6行下插入語句“flag=1;”,第7行下插入語句“if(flag==0)break;”。這樣在程序的內層循環中不再有值的變化時就可以跳出循環,結束程序,從而提高算法的效率。現代教育著重對學生創造性思維的培養,相對于知識的講授更重要的是讓學生掌握思維方式,發散思維就是創造性思維中的一種重要形式。通過上面的講解讓學生知道冒泡算法還有其不完善的地方,可進一步啟發學生對算法進行改進:如上浮下沉算法、快速排序算法、線性時間算法等。使學生能更快更好掌握排序算法的基本思想和原理,著重培養學生發現問題和解決問題的能力,激發學生的獨立思考和創新能力,這比將固化的知識點傳授給學生更加的重要和有效。

3結語

本文以講授冒泡排序為例,設計了通過動態的PPT和增加動畫效果等多媒體教學手段,采用正向講解算法思想,逆向分析具體實例,歸納、總結算法的多種思維方法,形象生動的向學生展示了冒泡排序的基本思想和變化過程。一方面通過步驟的總結過度到代碼的書寫,突破代碼書寫的難點。另一方面引導學生觀察算法的不足之處,讓學生自己發現問題,并提出解決問題的辦法,進而培養學生的發散思維和獨立思考的能力,體現了現代教育著重培養學生創新能力的教育思想。

作者:楊波 梁少林 單位:四川文理學院數學與財經學院

主站蜘蛛池模板: 成年性午夜免费视频网站不卡 | 成人毛片免费播放 | 国产成人18黄网站在线观看网站 | 日本三级香港三级人妇gg在线 | 欧美日本亚洲国产一区二区 | 久久久久久久国产精品毛片 | 国产激情视频在线播放 | 欧美极度极度另类 | 92精品国产成人观看免费 | 国产成人精品亚洲日本在线观看 | 2021精品国产品免费观看 | 国内精品久久久久久 | 久久中文字幕久久久久 | 中文字幕有码视频 | 亚洲精品欧洲久久婷婷99 | 欧美日本一区二区三区 | 久久精品中文字幕一区 | 欧美特黄高清免费观看的 | 国产三级日本三级日产三 | 国产真人毛片一级视频 | 手机免费在线看毛片 | 亚洲综合亚洲 | 普通话对白国产情侣自啪 | 国产最爽的乱淫视频国语对 | 加勒比色| 孕妇一级片 | 最新步兵社区在线观看 | 日本不卡一区视频 | 在线观看免费黄色网址 | 久久中文亚洲国产 | 午夜毛片不卡高清免费 | 成人看的午夜免费毛片 | 日韩a一级欧美一级 | 小草青青神马影院 | 日本精品在线观看 | 亚洲天堂2018av| 欧美日本一道高清二区三区 | 国语自产精品视频 | 日本加勒比高清一本大道 | 国产免费爱在线观看视频 | 国产三级精品在线 |