算法作業(yè)講解_第1頁
算法作業(yè)講解_第2頁
算法作業(yè)講解_第3頁
算法作業(yè)講解_第4頁
算法作業(yè)講解_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、算法習(xí)題講解Sch1-1:設(shè)n個(gè)不同的整數(shù)排好序后存于T1.n中,若存在一個(gè)下標(biāo)i(1 i n),使得Ti=i。試設(shè)計(jì)一個(gè)有效算法找到這個(gè)下標(biāo),要求算法在最壞情形下的計(jì)算時(shí)間為O(log n)。解答要點(diǎn):采用二分查找,當(dāng)Tmidmid時(shí),在前半部分尋找,當(dāng)Tmidmid時(shí),在后半部分需找,相等時(shí)即找到。Sch1-2:在一個(gè)由n個(gè)元素組成的表中,出現(xiàn)次數(shù)最多的元素被稱為眾數(shù)。試寫一個(gè)尋找眾數(shù)及其重?cái)?shù)的有效算法,并分析其計(jì)算時(shí)間復(fù)雜性。解答要點(diǎn):先排序,然后遍歷一遍找到重復(fù)次數(shù)最多的元素。注意:這里不一定能用計(jì)數(shù)排序,因?yàn)轭}目沒說明一定是整數(shù)。Sch1-3:設(shè)x=a+bi和y=c+di是兩個(gè)復(fù)數(shù),

2、只要做4次乘法就能夠計(jì)算乘積xy=(ac-bd)+(ad+bc)i。試設(shè)計(jì)一個(gè)方法只用3次乘法計(jì)算乘積xy。解答要點(diǎn):設(shè)法將ac、bd、ad和bc四次乘法變?yōu)橹挥?次乘法。保留ac、bd,于是(ad+bc)= (a+b)(c+d)-ac-bd只需計(jì)算ac、bd和(a+b)(c+d)三次乘法即可。15.2-1:對(duì)矩陣規(guī)模序列,求矩陣鏈最優(yōu)括號(hào)化方案。解答要點(diǎn):遞歸求解公式為:15.4-5:設(shè)計(jì)一個(gè)O(n2)時(shí)間的算法,求一個(gè)n個(gè)數(shù)的序列的最長單調(diào)遞增子序列。解答要點(diǎn):方法一:轉(zhuǎn)化為求LCS對(duì)數(shù)組的一份拷貝進(jìn)行排序,然后去重,最后與原序列求LCS。方法二:直接采用動(dòng)態(tài)規(guī)劃法設(shè)Lj表示以aj結(jié)尾的數(shù)

3、組序列的最長遞增子序列長度,則Lj= max(Li)+1, ij且aiaj 注意:看清問題,題目要求的是單調(diào)遞增。15.4-6:設(shè)計(jì)一個(gè)O(nlgn)的算法,求一個(gè)n個(gè)數(shù)的序列的最長單調(diào)遞增子序列。解答要點(diǎn):設(shè)Lj保存當(dāng)前所有長度為j的子序列中尾元素最小的元素下標(biāo),對(duì)于第i個(gè)元素,由于aLi是非降的,可以使用二分查找找到最大的j,使得aLjai,記錄當(dāng)前以ai結(jié)尾的最長子序列的前一個(gè)元素在a中的位置,以便輸出最長子序列。15-5:編輯距離問題。(題目太長,略)解答要點(diǎn): (a)遞歸求解公式為:(b): (1)如果xj=yj,1分;對(duì)應(yīng)的是copy操作; (2)如果xi!=yj并且兩者都不是空格

4、,-1分;對(duì)應(yīng)的是replace操作; (3)如果xj或者yj是空格,-2分,對(duì)應(yīng)的是insert和delete操作。i1j1cost(copy) i1j1cost(replace) i2j2cost(tw iddle),2, 1 m ini1j1cost(delete)alw ays 1cost(insert)alw ayscif x iyjcif x iyjcif ijx iyjc ijand xyc ijc ij16.1-4:假定有一組活動(dòng),我們需要將他們安排到一些教室,任意活動(dòng)都可以在任意教室進(jìn)行,希望使用最少的教室完成所有活動(dòng)。設(shè)計(jì)一個(gè)高效的貪心算法求每個(gè)活動(dòng)應(yīng)該在哪個(gè)教室進(jìn)行。(區(qū)間圖著色問題)解答要點(diǎn):構(gòu)造一個(gè)區(qū)間圖,頂點(diǎn)表示給定的活動(dòng),邊連接表示不兼容的活動(dòng),然后用最少的顏色對(duì)頂點(diǎn)進(jìn)行著色,使得所有相鄰頂點(diǎn)顏色均不相同。16.2-5:設(shè)計(jì)一個(gè)高效算法,對(duì)實(shí)數(shù)線上給定的一個(gè)點(diǎn)集x1,x2 xn,求一個(gè)單位長度閉區(qū)間集合,包含所有給定的點(diǎn),并要求此集合最小。證明你的算法是正確的。解答要點(diǎn):對(duì)點(diǎn)集進(jìn)行排序得到y(tǒng)1,y2, yn,貪心的從左到右進(jìn)行選擇,比如選擇 y1,y1 +1區(qū)間,則屬于此區(qū)間內(nèi)的點(diǎn)均可消去。注意:要求是單位長度閉區(qū)間集合。Sch2-1:作業(yè)分配問題,n個(gè)作業(yè)分配給n個(gè)人,使得總花

溫馨提示

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

評(píng)論

0/150

提交評(píng)論