算法設(shè)計與分析第二版課后習(xí)題解答_第1頁
算法設(shè)計與分析第二版課后習(xí)題解答_第2頁
算法設(shè)計與分析第二版課后習(xí)題解答_第3頁
算法設(shè)計與分析第二版課后習(xí)題解答_第4頁
算法設(shè)計與分析第二版課后習(xí)題解答_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

習(xí)題1.14。設(shè)計一個計算k石」的算法,n是任意正整數(shù).除了賦值和比較運算,該算法只能用到基本的四則運算操作。算法求h五1〃輸入:一個正整數(shù)nl2//輸出:.step1:a=1;step2:若a*a〈n轉(zhuǎn)step3,否則輸出a;step3:a=a+1轉(zhuǎn)step2;.2.用歐幾里德算法求gcd(31415,14142)。b。用歐幾里德算法求gcd(31415,14142),比檢查min{m,n}和gcd(m,n)間連續(xù)整數(shù)的算法快多少倍?請估算一下。a。gcd(31415,14142)=gcd(14142,3131)=gcd(3131,1618)=gcd(1618,1513)=gcd(1513,105)=gcd(1513,105)=gcd(105,43)=gcd(43,19)=gcd(19,5)=gcd(5,4)=gcd(4,1)=gcd(1,0)=1.b。有a可知計算gcd(31415,14142)歐幾里德算法做了11次除法。連續(xù)整數(shù)檢測算法在14142每次迭代過程中或者做了一次除法,或者兩次除法,因此這個算法做除法的次數(shù)鑒于1?14142和2?14142之間,所以歐幾里德算法比此算法快1?14142/11處1300與2?14142/11處2600倍之間..證明等式gcd(m,n)=gcd(n,mmodn)對每一對正整數(shù)m,n都成立。Hint:根據(jù)除法的定義不難證明:如果d整除u和v,那么d一定能整除u士v;

如果d整除u,那么d也能夠整除u的任何整數(shù)倍ku。對于任意一對正整數(shù)巾,3若d能整除m和n,那么d一定能整除n和r二mmodn二m-qn;顯然,若d能整除n和r,也一定能整除m=r+qn和n.數(shù)對(m,n)和(n,r)具有相同的公約數(shù)的有限非空集,其中也包括了最大公約數(shù)。故gcd(m,n)=gcd(n,r)7.對于第一個數(shù)小于第二個數(shù)的一對數(shù)字,歐幾里得算法將會如何處理?該算法在處理這種輸入的過程中,上述情況最多會發(fā)生幾次?Hint:對于任何形如0<=m〈n的一對數(shù)字,Euclid算法在第一次疊代時交換m和n,即gcd(m,n)=gcd(n,m)并且這種交換處理只發(fā)生一次。8.a。對于所有1WmnW108.a。對于所有1WmnW10的輸入,Euclid算法最少要做幾次除法?(1次)b.對于所有1WmnW10的輸入,Euclid算法最多要做幾次除法?(5次)gcd(5,8)習(xí)題1.21.(農(nóng)夫過河)G-山羊C一白菜P-1.(農(nóng)夫過河)G-山羊C一白菜P-農(nóng)夫 W-狼2。(過橋問題)1,2,5,10——分別代表4個人,f—手電筒4。對于任意實系數(shù)a,b,c,某個算法能求方程ax八2+bx+c=0的實根,寫出上述算法的偽代碼(可以假設(shè)$4^(x)是求平方根的函數(shù))算法Quadratic(a,b,c)〃求方程ax八2+bx+c=0的實根的算法//輸入:實系數(shù)a,b,c//輸出:實根或者無解信息IfaW0D—b*b-4*a*cIfD〉0temp12*ax11(—b+sqrt(D))/tempx21(—b—sqrt(D))/tempreturnx1,x2elseifD=0return-b/(2*a)elsereturn“norealroots”else//a=0ifbW0return-c/belse//a=b=0ifc=0return“norealnumbers"elsereturn“norealroots"5。描述將十進制整數(shù)表達為二進制整數(shù)的標(biāo)準(zhǔn)算法a。用文字描述b.用偽代碼描述解答:a.將十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)的算法輸入:一個正整數(shù)n輸出:正整數(shù)門相應(yīng)的二進制數(shù)第一步:用n除以2,余數(shù)賦給Ki(i=0,1,2。。.),商賦給n第二步:如果門=0,則到第三步,否則重復(fù)第一步第三步:將Ki按照i從高到低的順序輸出b.偽代碼算法DectoBin(n)〃將十進制整數(shù)n轉(zhuǎn)換為二進制整數(shù)的算法〃輸入:正整數(shù)n〃輸出:該正整數(shù)相應(yīng)的二進制數(shù),該數(shù)存放于數(shù)組Bin[1..。n]中i=1whilen!=0do{Bin[i]=n%2;n=(int)n/2;i++;}whilei!=0do{printBin[i];(完整word)算法設(shè)計與分析第二版課后習(xí)題解答9??紤]下面這個算法,它求的是數(shù)組中大小相差最小的兩個元素的差.(算法略)對這個算法做盡可能多的改進.算法MinDistance(A[0.。n—1])〃輸入:數(shù)組A[00.n-l]//輸出:m6smallestdistancedbetweentwoofitselementsdmin—ncfori―0ton—2daforj-B+1t。打一1doifmp-A\i'_-A[j'iftemp<dmindmin—tempreturndmm習(xí)題1.31.考慮這樣一個排序算法,該算法對于待排序的數(shù)組中的每一個元素,計算比它小的元素個數(shù),然后利用這個信息,將各個元素放到有序數(shù)組的相應(yīng)位置上去.for£「()to門.一1doCount[z]_0for2—()ton—2doforj—?;+1to7?—1doifA\i]<A[j]Count[jCount[j\+1cl5cCouvzti「Count£]+1far£「()ton-idoS[County—A[i]a。應(yīng)用該算法對列表”60,35,81,98,14,47”排序b。該算法穩(wěn)定嗎?c。該算法在位嗎?解:a。該算法對列表a。該算法對列表”60,35,81,98,14,47"排序的過程如下所示:b.該算法不穩(wěn)定.比如對列表”2,2*"排序c.該算法不在位.額外空間forSandCount口4。(古老的七橋問題)第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論