算法设计与分析:递归与分治法-实验报告(共8页).doc
《算法设计与分析:递归与分治法-实验报告(共8页).doc》由会员分享,可在线阅读,更多相关《算法设计与分析:递归与分治法-实验报告(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 应用数学 学院 信息安全 专业 班 学号 姓名 实验题目 递归与分治法 综合实验评分表指导教师评分标准序号评分项目评分标准满分打分1完成度按要求独立完成实验准备、程序调试、实验报告撰写。202实验内容(1) 完成功能需求分析、存储结构设计;(2) 程序功能完善、可正常运行;(3) 测试数据正确,分析正确,结论正确。303实验报告内容齐全,符合要求,文理通顺,排版美观。404总结对实验过程遇到的问题能初步独立分析,解决后能总结问题原因及解决方法,有心得体会。10实验报告一、 实验目的与要求1. 掌握递归算法的设计思想 2. 掌握分治法设计算法的一般过程 3. 理解并掌
2、握算法渐近时间复杂度的分析方法二、 实验内容1、折半查找的递归算法(1)源程序代码#include #include using namespace std;int bin_search(int key,int low, int high,int k) int mid; if(lowhigh) return -1; else mid = (low+high) / 2; if(keymid=k) return mid; if(kkeymid) return bin_search(key,mid+1,high,k); else return bin_search(key,low,mid-1,k);
3、 int main() int n , i , addr; int A10 = 2,3,5,7,8,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;else cout endl n 不在上述的整数中 endl endl; getchar();return 0;(2)运行界面查找成功查找失败2、用分治
4、法求x的n次方,要求时间复杂度为O(lgn)(1)源程序代码#include #include using namespace 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); else return (s * s * x); int main() int x, n; cout 你将进行x的n次方计算 endl endl;cout 请输入x: x;cout 请输入n: n; cout e
5、ndl 计算结果: Pow(x, n) endl endl; return 0;(2)运行界面3、自然合并排序算法(1)源程序代码#include 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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 递归 分治 实验 报告
限制150内