5.將新數(shù)據(jù)列中的第5個數(shù)97與右邊相鄰的數(shù)13進(jìn)行比較,因?yàn)?3<97,97應(yīng)下沉,所以順序改變,得到新的數(shù)據(jù)列:
{38,49,65, 76, 13,97,27,49}
4.將新數(shù)據(jù)列中的第4個數(shù)97與右邊相鄰的數(shù)76進(jìn)行比較,因?yàn)?6<97,97應(yīng)下沉,所以順序不變,得到新的數(shù)據(jù)列:
{38,49,65, 76,97,13,27,49}
3.將新數(shù)據(jù)列中的第3個數(shù)65與右邊相鄰的數(shù)97進(jìn)行比較,因?yàn)?7>65,所以順序不變,得到新的數(shù)據(jù)列:
{38,49,65,97,76,13,27,49}
2.將新數(shù)據(jù)列中的第2個數(shù)49與右邊相鄰的數(shù)65進(jìn)行比較,因?yàn)?5>49,所以順序不變,得到新的數(shù)據(jù)列:
{38,49,65,97,76,13,27,49}
1.將第1個數(shù)與右邊相鄰的數(shù)38進(jìn)行比較,因?yàn)?8<49,49應(yīng)下沉,即向右移動,所以交換他們的位置,得到新的數(shù)據(jù)列:
{38,49,65,97,76,13,27,49}
3.排序
排序的算法很多,課本主要介紹里兩種排序方法:直接插入排序和冒泡排序
(1)直接插入排序
在日常生活中,經(jīng)常碰到這樣一類排序問題:把新的數(shù)據(jù)插入到已經(jīng)排好順序的數(shù)據(jù)列中。
例如:一組從小到大排好順序的數(shù)據(jù)列{1,3,5,7,9,11,13},通常稱之為有序列,我們用序號1,2,3,……表示數(shù)據(jù)的位置,欲把一個新的數(shù)據(jù)8插入到上述序列中。
完成這個工作要考慮兩個問題:
(1)確定數(shù)據(jù)“8”在原有序列中應(yīng)該占有的位置序號。數(shù)據(jù)“8”所處的位置應(yīng)滿足小于或等于原有序列右邊所有的數(shù)據(jù),大于其左邊位置上所有的數(shù)據(jù)。
(2)將這個位置空出來,將數(shù)據(jù)“8”插進(jìn)去。
對于一列無序的數(shù)據(jù)列,例如:{49,38,65,97,76,13,27,49},如何使用這種方法進(jìn)行排序呢?基本思想很簡單,即反復(fù)使用上述方法排序,由序列的長度不斷增加,一直到完成整個無序列就有序了
首先,{49}是有序列,我們將38插入到有序列{49}中,得到兩個數(shù)據(jù)的有序列:
{38,49},
然后,將第三個數(shù)據(jù)65插入到上述序列中,得到有序列:
{38,49,65}
…………
按照這種方法,直到將最后一個數(shù)據(jù)65插入到上述有序列中,得到
{13,27,38,49,49,65,76,97}
這樣,就完成了整個數(shù)據(jù)列的排序工作。注意到無序列“插入排序算法”成為了解決這類問題的平臺
(2)冒泡法排序
所謂冒泡法排序,形象地說,就是將一組數(shù)據(jù)按照從小到大的順序排列時,小的數(shù)據(jù)視為質(zhì)量輕的,大的數(shù)據(jù)視為質(zhì)量沉的。一個小的數(shù)據(jù)就好比水中的氣泡,往上移動,一個較大的數(shù)據(jù)就好比石頭,往下移動。顯然最終會沉到水底,最輕的會浮到頂,反復(fù)進(jìn)行,直到數(shù)據(jù)列排成為有序列。以上過程反映了這種排序方法的基本思路。
我們先對一組數(shù)據(jù)進(jìn)行分析。
設(shè)待排序的數(shù)據(jù)為:{49,38,65,97,76,13,27,49}
排序的具體操作步驟如下:
2.秦九韶算法
秦九韶算法的一般規(guī)則:
秦九韶算法適用一般的多項式f(x)=anxn+an-1xn-1+….+a1x+a0的求值問題。用秦九韶算法求一般多項式f(x)= anxn+an-1xn-1+….+a1x+a0當(dāng)x=x0時的函數(shù)值,可把n次多項式的求值問題轉(zhuǎn)化成求n個一次多項式的值的問題,即求
v0=an
v1=anx+an-1
v2=v1x+an-2
v3=v2x+an-3
……..
vn=vn-1x+a0
觀察秦九韶算法的數(shù)學(xué)模型,計算vk時要用到vk-1的值,若令v0=an。
我們可以得到下面的遞推公式:
v0=an
vk=vk-1+an-k(k=1,2,…n)
這是一個在秦九韶算法中反復(fù)執(zhí)行的步驟,可以用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)
1.求最大公約數(shù)
(1)短除法
求兩個正整數(shù)的最大公約數(shù)的步驟:先用兩個數(shù)公有的質(zhì)因數(shù)連續(xù)去除,一直除到所得的商是兩個互質(zhì)數(shù)為止,然后把所有的除數(shù)連乘起來
(2)窮舉法(也叫枚舉法)
窮舉法求兩個正整數(shù)的最大公約數(shù)的解題步驟:從兩個數(shù)中較小數(shù)開始由大到小列舉,直到找到公約數(shù)立即中斷列舉,得到的公約數(shù)便是最大公約數(shù)
(3)輾轉(zhuǎn)相除法
輾轉(zhuǎn)相除法求兩個數(shù)的最大公約數(shù),其算法可以描述如下:
① 輸入兩個正整數(shù)m和n;
② 求余數(shù)r:計算m除以n,將所得余數(shù)存放到變量r中;
③更新被除數(shù)和余數(shù):m=n,n=r;
④判斷余數(shù)r是否為0。若余數(shù)為0,則輸出結(jié)果;否則轉(zhuǎn)向第②步繼續(xù)循環(huán)執(zhí)行
如此循環(huán),直到得到結(jié)果為止。
(4)更相減損術(shù)
我國早期也有解決求最大公約數(shù)問題的算法,就是更相減損術(shù)。在《九章算術(shù)》中記載了更相減損術(shù)求最大公約數(shù)的步驟:可半者半之,不可半者,副置分母•子之數(shù),以少減多,更相減損,求其等也,以等數(shù)約之
步驟:
Ⅰ.任意給出兩個正數(shù);判斷它們是否都是偶數(shù)。若是,用2約簡;若不是,執(zhí)行第二步。
Ⅱ.以較大的數(shù)減去較小的數(shù),接著把較小的數(shù)與所得的差比較,并以大數(shù)減小數(shù)。繼續(xù)這操作,直到所得的數(shù)相等為止,則這個數(shù)(等數(shù))就是所求的最大公約數(shù)。
算法是高中數(shù)學(xué)新課程中的新增內(nèi)容,本講的重點(diǎn)是幾種重要的算法案例思想,復(fù)習(xí)時重算法的思想輕算法和程序的構(gòu)造。
預(yù)測2011年高考隊本講的考察是:以選擇題或填空題的形式出現(xiàn),分值在5分左右,考察的熱點(diǎn)是算法實(shí)例和傳統(tǒng)數(shù)學(xué)知識的結(jié)合題目
湖北省互聯(lián)網(wǎng)違法和不良信息舉報平臺 | 網(wǎng)上有害信息舉報專區(qū) | 電信詐騙舉報專區(qū) | 涉歷史虛無主義有害信息舉報專區(qū) | 涉企侵權(quán)舉報專區(qū)
違法和不良信息舉報電話:027-86699610 舉報郵箱:58377363@163.com