算法設(shè)計(jì)心得體會(huì)_第1頁
算法設(shè)計(jì)心得體會(huì)_第2頁
算法設(shè)計(jì)心得體會(huì)_第3頁
算法設(shè)計(jì)心得體會(huì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

第第頁算法設(shè)計(jì)心得體會(huì)

這學(xué)期的算法與設(shè)計(jì)課,老師布置了這四個(gè)問題,分別是貨郎擔(dān)問題,動(dòng)態(tài)生成二維數(shù)組,對話框下拉列表,排序問題。

二、學(xué)習(xí)掌控:

基本程序描述:

〔1〕貨郎擔(dān)問題:貨郎擔(dān)問題屬于易于描述但難于解決的聞名難題之一,至今世界上還有不少人在討論它。貨郎擔(dān)問題要從圖g的全部周游路徑中求取具有最小成本的周游路徑,而由始點(diǎn)出發(fā)的周游路徑一共有〔n一1〕!條,即等于除始結(jié)點(diǎn)外的n一1個(gè)結(jié)點(diǎn)的排列數(shù),因此貨郎擔(dān)問題是一個(gè)排列問題。貨郎擔(dān)的程序?qū)崿F(xiàn)了利用窮舉法解決貨郎擔(dān)問題,可以在城市個(gè)數(shù)和各地費(fèi)用給定的狀況下利用窮舉法逐一計(jì)算出每一條路徑的費(fèi)用,并從中選出費(fèi)用最小的路徑,從而求出問題的解。

〔2〕費(fèi)用矩陣:費(fèi)用矩陣的主要內(nèi)容是動(dòng)態(tài)生成二維數(shù)組。首先由鍵盤輸入自然數(shù),費(fèi)用矩陣的元素由隨機(jī)數(shù)產(chǎn)生,并取整,把生成的矩陣存放在二維數(shù)組中,最末把矩陣內(nèi)容輸出到文件和屏幕上。它采納分支界限法,分支限界法的基本思想是對包含具有約束條件的最優(yōu)化問題的全部可行解的解〔數(shù)目有限〕空間進(jìn)行搜尋。該算法在詳細(xì)執(zhí)行時(shí),把全部可行的解空間不斷分割為越來越小的子集,并為每個(gè)子集內(nèi)的解計(jì)算一個(gè)下界或上界。動(dòng)態(tài)生成二維n*n的數(shù)組程序利用指針表示數(shù)組的行和列,并逐一安排空間,在輸入n的數(shù)值后,系統(tǒng)自動(dòng)安排空間,生成n*n的數(shù)組,并產(chǎn)生隨機(jī)數(shù)填充數(shù)組,最末將結(jié)果輸入到指定文件中。

〔3〕Mfc:在下拉列表框中添加內(nèi)容程序,在下拉列表對應(yīng)的函數(shù)中利用addstring添加需要的內(nèi)容。首先定義下拉列表框?yàn)閏combo*型,并定義其屬性名,利用addstring函數(shù)可以任意添加需要的內(nèi)容。a排序問題:快速排序的運(yùn)行時(shí)間與劃分是否對稱有關(guān),其最壞狀況發(fā)生在劃分過程中產(chǎn)生的兩個(gè)區(qū)域分別包含n-1個(gè)元素和1個(gè)元素的時(shí)候。其算法的時(shí)間繁復(fù)度為O(n2),在最好的狀況下每次劃分的基準(zhǔn)恰好為中值,可得其算法時(shí)間繁復(fù)度為O(n㏒n)。算法的實(shí)現(xiàn)和理解和代碼實(shí)現(xiàn)完全是兩回事,想要完全掌控一種算法,需要?jiǎng)邮謱?shí)踐,用代碼實(shí)現(xiàn),才能理解透徹,真正掌控。b對話框下拉列表:這個(gè)項(xiàng)目簡約易懂,輕松實(shí)現(xiàn)。

三、疑問與總結(jié):

貨郎擔(dān)的問題,我認(rèn)為窮舉法相對比而言是比較初級的方法,費(fèi)時(shí)耗力,適合在練習(xí)時(shí)選用,但是在實(shí)際問題中不建議采納。克魯斯卡爾或者普里姆算法求取最小生成樹的方法來解決貨郎擔(dān)的問題是更適合現(xiàn)實(shí)解決問題的。我認(rèn)為程序可以用switch函數(shù)來將函數(shù)分成幾個(gè)部分更人性化,比如分為解決問題的的選項(xiàng),輸出結(jié)果選項(xiàng),退出程序選項(xiàng)等。再有就是費(fèi)用矩陣的值可以從文件中讀取,而結(jié)果也可以徑直放在指定文件中,這樣在實(shí)際應(yīng)用中比較廣泛。

動(dòng)態(tài)生成二維數(shù)組的程序我認(rèn)為假如根據(jù)規(guī)范性,我的方法是中規(guī)中矩的,究竟再向下延伸,生成三維的數(shù)組,需要三層的.指針來實(shí)現(xiàn)。但是就程序的簡化程度和計(jì)算機(jī)處理時(shí)間來說,我認(rèn)為這樣雙層指針的算法有些太占用內(nèi)存,究竟要給行和列各安排n個(gè)空間。我通過與同學(xué)的溝通,我發(fā)覺可以用1位數(shù)組來實(shí)現(xiàn)二維的n*n的數(shù)組。首先安排n*n的空間,然后通過循環(huán)在一行的數(shù)據(jù)達(dá)到n時(shí)自動(dòng)換行。這樣程序得到了肯定的簡化,并且減削了肯定的內(nèi)存運(yùn)用。我認(rèn)為這種方法是比較貼合實(shí)際的。

四、心得體會(huì):

在計(jì)算機(jī)軟件專業(yè)中,算法分析與設(shè)計(jì)是一門特別重要的課程,許多人為它如癡如醉。許多問題的解決,程序的編寫都要依靠它,在軟件還是面對過程的階段,就有程序=算法+數(shù)據(jù)結(jié)構(gòu)這個(gè)公式。算法的學(xué)習(xí)對于培育一個(gè)人的規(guī)律思維技能是有極大援助的,它可以培育我們養(yǎng)成思索分析問題,解決問題的技能。

假如一個(gè)算法有缺陷,或不適合某個(gè)問題,執(zhí)行這個(gè)算法將不會(huì)解決這個(gè)問題。不同的算法可能用不同的時(shí)間、空間或效率來完成同樣的任務(wù)。一個(gè)算法的優(yōu)劣可以用空間繁復(fù)性和時(shí)間繁復(fù)度來衡量。算法可以運(yùn)用自然語言、偽代碼、流程圖等多種不同的方法來描述。計(jì)算機(jī)系統(tǒng)中的操作系統(tǒng)、語言編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)以及各式各

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論