1、计算机算法与设计分析实验报告计算机算法与设计分析实验报告班级: 姓名:学号:实验一 分治与递归一:基本递归算法一、实验目的与要求1、 熟悉C/C+语言的集成开发环境;2、 通过本实验加深对递归过程的理解二、实验题:任意输入一个整数,输出结果能够用递归方法实现整数的划分。三、程序代码四、实验结果二:二分搜索一、实验目的与要求1、熟悉二分搜索算法;2、初步掌握分治算法;二、实验题设a0:n-1是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置I和大于x的最大元素位置j。当搜索元素在数组中时,I和j相同,均为x在数组中的位置。三、程序代码四、实验结果实
2、验二 动态规划算法一:最长公共子序列问题一、实验目的与要求1、熟悉最长公共子序列问题的算法;2、初步掌握动态规划算法;二、实验题若给定序列X=x1,x2,xm,则另一序列Z=z1,z2,zk,是X的子序列是指存在一个严格递增下标序列i1,i2,ik使得对于所有j=1,2,k有:zj=xij。例如,序列Z=B,C,D,B是序列X=A,B,C,B,D,A,B的子序列,相应的递增下标序列为2,3,5,7。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。三、程序代码四、实验结果二:最大子段和问题一、实验目的与要求1、熟悉最长最大字段和问题的算法;2、进一步
3、掌握动态规划算法;二、实验题若给定n个整数组成的序列a1,a2,a3,an,求该序列形如aiai1an的最大值。三、程序代码四、实验结果实验三 贪心算法一:多机调度问题一、实验目的与要求1、初步掌握贪心算法2、熟悉多机调度问题的算法;二、实验题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。三、程序代码四、实验结果二:用贪心算法求解加油问题一、实验目的与要求1、 熟悉贪心算法的基本原理与适用范围。2、 使用贪心算法编程。二、实验题一辆车加满油后可行驶n km。旅
4、途中有若干加油站。设计一个有效算法,指出应当在哪些加油站停靠加油,使得沿途加油次数最少。对于给定的n和k个加油站位置,编程计算最少加油次数。三、程序代码四、实验结果实验四 回溯算法和分支限界法一:符号三角形问题一、实验目的与要求1、掌握符号三角形问题的算法;2、初步掌握回溯算法;二、实验题下面都是“-”。 下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。 在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相三、程序代码四、实验结果二:01背包问题一、实验目的与要求1、掌握01背包问题的回溯算法;2、进一步掌握回溯算法;二、实验题给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?三、程序代码四、实验结果