算法設計與分析學習心得_第1頁
算法設計與分析學習心得_第2頁
算法設計與分析學習心得_第3頁
算法設計與分析學習心得_第4頁
算法設計與分析學習心得_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第第頁算法設計與分析學習心得算法設計與分析學習心得

班級:物聯網1201姓名:劉瀟學號:1030612129

一、試驗內容:

這學期的算法與設計課,老師布置了這四個問題,分別是貨郎擔問題,動態生成二維數組,對話框下拉列表,排序問題。

二、學習掌控:

基本程序描述:

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

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

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

三.疑問與總結:

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

動態生成二維數組的程序我認為假如根據規范性,我的方法是中規中矩的,究竟再向下延伸,生成三維的數組,需要三層的指針來實現。但是就程序的簡化程度和計算機處理時間來說,我認為這樣雙層指針的算法有些太占用內存,究竟要給行和列各安排n個空間。我通過與同學的溝通,我發覺可以用1位數組來實現二維的n*n的數組。首先安排n*n的空間,

然后通過循環在一行的數據達到n時自動換行。這樣程序得到了肯定的簡化,并且減削了肯定的內存運用。我認為這種方法是比較貼合實際的。

四.心得體會

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

假如一個算法有缺陷,或不適合某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間繁復性和時間繁復度來衡量。算法可以運用自然語言、偽代碼、流程圖等多種不同的方法來描述。計算機系統中的操作系統、語言編譯系統、數據庫管理系統以及各式各樣的計算機應用系統中的軟件,都需要運用詳細的算法來實現。算法設計與分析是計算機科學與技術的一個核心問題。因此,學習算法無疑會加強自己的競爭力,提高自己的修為,為自己增彩。

算法設計與分析學習心得

班級:物聯網1201姓名:劉瀟學號:1030612129

一、試驗內容:

這學期的算法與設計課,老師布置了這四個問題,分別是貨郎擔問題,動態生成二維數組,對話框下拉列表,排序問題。

二、學習掌控:

基本程序描述:

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

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

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

三.疑問與總結:

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

動態生成二維數組的程序我認為假如根據規

溫馨提示

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

評論

0/150

提交評論