0  445146  445154  445160  445164  445170  445172  445176  445182  445184  445190  445196  445200  445202  445206  445212  445214  445220  445224  445226  445230  445232  445236  445238  445240  445241  445242  445244  445245  445246  445248  445250  445254  445256  445260  445262  445266  445272  445274  445280  445284  445286  445290  445296  445302  445304  445310  445314  445316  445322  445326  445332  445340  447090 

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”插進去。

對于一列無序的數(shù)據(jù)列,例如:{49,38,65,97,76,13,27,49},如何使用這種方法進行排序呢?基本思想很簡單,即反復(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ù)進行,直到數(shù)據(jù)列排成為有序列。以上過程反映了這種排序方法的基本思路。

我們先對一組數(shù)據(jù)進行分析。

設(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當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)來實現(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)容,本講的重點是幾種重要的算法案例思想,復(fù)習(xí)時重算法的思想輕算法和程序的構(gòu)造。

對本講的考察是:以選擇題或填空題的形式出現(xiàn),分值在5分左右,考察的熱點是算法實例和傳統(tǒng)數(shù)學(xué)知識的結(jié)合題目。

試題詳情

65. They have no idea at all _____.

A. where he has gone              B. where did he go

C. where has he gone              D. which place he has gone

試題詳情

64. We must keep in mind the fact _____ China is still a developing country.

A. whether       B. that          C. why             D. when

試題詳情

63.I have no idea _____ she will be back.

A. that          B. where     C. that when         D. when

試題詳情

62. The fact _____ he hadn’t said anything surprised us all.

A. why           B. if        C. that          D. whether

試題詳情

61. We heard the news _____ our team had won.

A. that           B. what         C. whether       D. why

試題詳情


同步練習(xí)冊答案