江蘇省如皋第一中等專業(yè)學校 錢秋榮
C語言作為一種實用性超強的編程語言,彰顯其高效、靈活的對數(shù)據(jù)進行處理的能力,C語言既可以編制系統(tǒng)的相關(guān)程序,又可以編制相關(guān)的軟件程序。中職C語言的排列問題的教學在C語言教學中占有重要的地位,C語言中的排列問題是多種多樣的編程語言系列中的一大重點內(nèi)容,同時又是一個難點內(nèi)容。如果中職學生對C語言中的排列問題掌握得不夠扎實,將會對中職學生后續(xù)的學習造成一定的負面效應(yīng)。如何提升中職C語言排列問題的教學效率應(yīng)成為教師積極研究的一面重要課題。
中職教師應(yīng)緊跟時代的脈搏,以中職C語言教材的實際為本,從排列問題的教學實際出發(fā),積極探索中職C語言排列問題的最有效的教學方法。
1.排入排序法。必須先去建立一個“空列表”,其作用是用來進行保存已經(jīng)排序的有序數(shù)列(可以將其稱之為“有序列表”)。接著從原數(shù)列之中去有意識的選取其中的一個數(shù),并將剛選取的這個數(shù)插入到“有序列表”之中去,并且將選取的這個數(shù)繼續(xù)保持有序的狀態(tài)。重復(fù)這個操作,一直到原數(shù)列空了才停止該操作,需強調(diào)的是如果插入排序的平均時間復(fù)雜度為平方級時,則表明其效率有待提高,卻是很易達到的。插入排序法彰顯的是逐步擴大成果的理念,從而使得有序列表的長度漸次增大,一直到這樣的長度與原列表的長度相等為止。
2.冒泡排序法。必須先將需要進行排序的數(shù)字加入工作列表之中。接著從列表的第一個數(shù)字開始直至倒數(shù)的第二個數(shù)字進行有序的檢查,如果發(fā)現(xiàn)那一位上的數(shù)字大于這個數(shù)字的下一位,便把這個數(shù)字與其下一位的數(shù)字進行交換,重復(fù)這樣的操作直到再也不可能交換為止。需要注意的是冒泡排序的平均時間的復(fù)雜程度與上文提到的“插入排序法”基本相當,也呈現(xiàn)平方級,同樣是極易達到目的。
3.快速排序法。快速排序法是C語言排序問題中最高效的一種排序方法。快速排序法彰顯的是“分治”理念??焖倥判虮仨毚_保列表的前半部分一定要小于列表的后半部分,接著依次對列表的前半部分與列表的后半部分進行排序,唯有如此,才能確保整個列表的有序。快速排序法彰顯的是一種最最先進的理念,因而其高效性凸顯。不可否認的事實是在排序問題的解決過程中方法的高效與否和列表中數(shù)字問題的比較次數(shù)有直接的關(guān)聯(lián),而快速排序法所強調(diào)的確保列表的前半部分一定要小于后半部分的要求便使得前半部分的任何一個數(shù)字后便不再與后半部分的數(shù)進行比較了,這樣便減少了數(shù)字間的不必要的比較。
4.堆排序法。堆排序這種方法與上文提及的排序方法完全不相同。堆排序必須先新建一個空列表,其作用類似于“排入排序法”中的“有序列表”。接著找出數(shù)列中最大的數(shù)字,并把這個最大的數(shù)字置于“有序列表”的末尾處,且同時將其從原數(shù)列加以刪掉。重復(fù)這樣的操作,直至原數(shù)列為空。需強調(diào)的是堆排序的平均時間復(fù)雜度為nolgn,但效率都是很高的。
中職教師應(yīng)在有效運用中職C語言排列問題重要的高效的教學方法的基礎(chǔ)上努力探究中職C語言排列問題教學效率提升的有關(guān)策略。
策略之一:激發(fā)中職學生對C語言排列問題的學習興趣?!爸卟蝗绾弥?,好之者不如樂之者?!迸d趣毫無疑問是中職學生學好C語言排列問題的動力源泉。中職教師唯有激發(fā)起中職學生學習C語言排列問題的興趣,才能引發(fā)中職學生對C語言排列問題的學習沖動,才能讓中職學生積極地、主動地、富有創(chuàng)造性地投入到對C語言排列問題的學習活動之中去。為了激發(fā)中職學生對C語言排列問題的學習興趣,中職教師應(yīng)讓中職學生深深地認識到中職C語言的學習,對中職學生的后續(xù)學習有重要的作用,因為C語言專業(yè)的知識基礎(chǔ)牢固了,更有利于中職學生升入高一級學校后的專業(yè)發(fā)展,甚至進入社會后都能得到受益的,從而讓中職學生增強對中職C語言學習,尤其是對排列問題的學習的興趣與動力。比如,中職教師在教學C語言這門功課之初就可以展示一些有利于激發(fā)中職學生學習C語言趣味性、實用性超強的程序把中職學生深深地吸引過來,再讓中職學生自主探索一下編寫代碼的興趣。如讓中職學生對照ASCII表自主對比去修改一下程序,中職學生會興致勃勃地自主或與他人合作探究思想中的圖案,讓中職學生在興趣盎然中體驗到對C語言學習的歡樂。
策略之二:實施分層教學。分層教學運用于中職C語言排列問題的教學中其出發(fā)點是中職教師需依據(jù)中職學生的認知基礎(chǔ)與能力發(fā)展水平將中職學生有針對性地、科學地、合理地劃分為幾組各自水平相接近的學習小組,教師再依據(jù)不同學習小組的特征采用恰當?shù)摹胺謱硬呗浴?,讓不同層次的中職學生在C語言排列問題的教學中得到不同層次的發(fā)展,實現(xiàn)分層教學彰顯的現(xiàn)代教育所倡導(dǎo)的“以人為本”的理念,因為中職學生不可否認地存在著差異性,有優(yōu)等生、中等生、學困生之分,在中職C語言排列問題的教學中教師應(yīng)認真實施分層教學,以使不同層次的中職學生都能獲得不同的發(fā)展。在C語言排列問題的學習中只強調(diào)讓學困生將一些基本性的排序問題加以解決,便應(yīng)給予鼓勵、贊賞,但對優(yōu)等生就需進行一些拓展延伸性的排序問題的訓練,讓優(yōu)等生在C語言排列問題的學習進入“更上一層樓”的高度。同時中職教師對C語言排列問題學習中的中等生也應(yīng)提出一些建設(shè)性的意義,讓中等生“跳一跳摘到果子”。
中職C語言排列問題教學效率提升的策略多種多樣,除了本文所提及的幾種策略外還有很多的策略,如可以采用“任務(wù)驅(qū)動”等策略,但受篇幅的限制,本文不再詳述。但無論采用什么方法,其出發(fā)點都是在于讓中職C語言排列問題的教學更實際,更接“地氣”,更高效,從而實現(xiàn)“教”與“學”的雙豐收。