




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、應用數學 學院信息安全 專業班 學號姓名實驗題日遞歸與分治法綜合實驗評分表指導教師評分標準序 號評分項目評分標準滿分打分1完成度按要求獨立完成實驗準備、程序調試、實驗報告撰 寫。202實驗內容(1)完成功能需求分析、存儲結構設計;(2)程序功能完善、可正常運行;(3)測試數據正確,分析正確,結論正確。303實驗報告內容芥全,符合要求,文理通順,排版美觀。404總結對實驗過程遇到的問題能初步獨立分析,解決后能 總結問題原因及解決方法,有心得體會。10實驗報告、實驗目的與要求掌握遞歸算法的設計思想掌握分治法設計算法的一般過程理解并掌握算法漸近時間復雜度的分析方法、實驗內容1、折半查找的遞歸算法(1
2、)源程序代碼#include #include using namespace std;int bin_search(int key,int low, int high,int k)int mid;if(lowhigh)return -1;elsemid = (low+high) / 2;if(keymid=k)return mid;if(kkeymid)return bin_search(key,mid+1,high,k);elsereturn bin_search(key,low,mid-1,k);int main()int n , i , addr;int A10 = 2,3,5,7,8
3、,10,12,15,19,21;cout ”在下面的10個整數中進行查找 endl;for(i=0;i10;i+)cout Ai ;cout endl endl 請輸入一個要查找的整數 n;addr = bin_search(A,0,9,n);if(-1 != addr)cout endl n 是上述整數中的第 addr 個數 endl;elsecout endl n ”不在上述的整數中” endl endl;getchar();return 0;(2)運行界面查找成功查找失敗2、用分治法求x的n次方,要求時間復雜度為O(lgn)源程序代碼#include #include using nam
4、espace std;int Pow(int x, int n)if (n = 1)return x;else if (n 1)int s;int m = n / 2;s = Pow (x, m);if (n % 2 = 0)return (s * s);elsereturn (s * s * x);int main()int x, n;cout ”你將進行x的n次方計算 endl endl;cout ”請輸入 x: x;cout ”請輸入 n: n;cout endl 計算結果: Pow(x, n) endl endl; return 0;3、自然合并排序算法(1)源程序代碼#include
5、 StdAfx.h”#include using namespace std;const int SIZE = 100;int arrSIZE;int recSIZE;void merge(int fir,int end,int mid);int pass(int n);void mergeSort(int n);void mergeSort(int n)int num=pass(n);while(num!=2)for(int i=0;inum;i+=2)merge(reci,reci+2-1,reci+1-1);num=pass(n);void merge(int fir,int end,i
6、nt mid)int tempArrSIZE;int fir1=fir,fir2=mid+1;for(int i=fir;imid)tempArri=arrfir2+;else if(fir2end)tempArri=arrfir1+;else if(arrfir1arrfir2)tempArri=arrfir2+;elsetempArri=arrfir1+;for(int i=fir;i=end;i+)arri=tempArri;int pass(int n)int num=0;int biger=arr0;recnum+=0;for(int i=1;i=biger)biger=arri;e
7、lse recnum+=i;biger=arri;recnum+=n;return num;int main()int n;cout請輸入需要排序的整數個數:n)for(int i=0;in;i+)cout請輸入整數:arri;mergeSort(n);cout排序結果為:endl;for(int i=0;in;i+)coutarri;coutendlendl;cout請輸入需要排序的整數個數:endl;return 0;C :Win d owssyste m 3 2cm d. exe請輸入需要排序的整數個數:請輸入整數:請輸入整數:請輸入整數:請輸入整數:62請輸入整數:請輸入整數:卻序結果
8、為:4 12 13 32 45 62請輸入需要排序的整數個數:搜狗拼音輸入法全:三、問題與討論問題:分治法能解決的問題一般具有什么特征?解答:任何一個可以用計算機求解的問題所需的計算時間都與其規模有關。 問題的規模越小越容易直接求解,解題所需的計算時間也越少。分治法的設計思 想是,將一個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各 個擊破,分而治之。分治法所能解決的問題一般具有以下幾個特征:(1)該問題的規模縮小到一定的程度就可以容易地解決;(2)該問題可以分解為若十個規模較小的相同問題,即該問題具有最優子 結構性質;(3)利用該問題分解出的子問題的解可以合并為該問題的解;(4)
9、該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公 共的子問題。四、總結這次實驗的內容都很有代表性,通過上機操作實踐與對問題的思考,讓我更 深層地領悟到了分治法的效率。分治法的基本思路并不難理解,就是將一個難以直接解決的大問題,分割成 一些規模較小的相同問題,在計算機的處理當中,問題的規模越小就越容易直接 求解,解題所需的計算時間也越少,所以分治法在合適的問題中是能大大提高效 率的。我非常喜歡上機課,因為課上聽的理論內容也許覺得懂了,但課后沒有一些 實踐,于是對一些難點實際上掌握得并不好。剛看到課題的實驗內容,其實基本 思路和條理還是會有的,因為會有一定的知識基礎,能夠想到一些相關的解決思 路,但有思路不一定就能夠解決問題,真正動手去做的時候才發現會出現更多的 實際問題。解決遇到的問題就是我們學習的過程,同時也能讓我注意到一些以前 不曾在意的問題。像我是使用C+來寫代碼的,其中我這次實驗時我就發現, “#include “StdAfX.h” 一定要放在首行,不然就會出錯;調試程序時如果出現 “Cannot find or open the PDB fil
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美食廣場聯合經營協議合同書范例
- 醫療設備保修服務協議書
- 二零二五種植技術人員聘用合同
- 二零二五版項目研發合作合同
- 外國專家聘用合同模板
- 停車場臨時合同樣本
- 《2025合同終止證明書》
- pos機押金退還合同標準文本
- 產權車位自由購買合同樣本
- 2013備案合同樣本
- 北京2025年北京市農林科學院招聘43人筆試歷年參考題庫附帶答案詳解
- 2025年廣州市勞動合同范本下載
- 2025-2030氣體檢測儀器行業市場深度調研及前景趨勢與投資研究報告
- 2025年北大荒黑龍江建三江水利投資有限公司招聘筆試參考題庫附帶答案詳解
- 靈活運用知識的2024年ESG考試試題及答案
- 受限空間作業施工方案
- 法院辦公室廉政風險防控責任清單
- 并聯高抗中性點小電抗補償原理分析及參數選擇方法
- 水蛭深加工提取天然水蛭素項目資金申請報告寫作模板
- 讓創造力照亮每一個孩子的未來向明初級中學
- 安全生產培訓新員工三級培訓.ppt
評論
0/150
提交評論