-
算法第三章实践报告
1.1 问题的描述 最大子段和问题的求解: 1.2 算法的描述 定义一个MaxSum函数,定义并初始化一个sum变量和一个b变量,用一个for循环来寻找a[n]中的最大字段和,判断条件如果b+a[i]大于a[i]本身,那么b就等于b+a[i]之后的值,如果不大于那么就将a[i]直接赋值于b。最后对所 -
算法第三章上机实践报告
一、实践题目名称 7-1 最大子段和 1.1 问题描述 简单来说,就是求由n个整数组成的序列的最大子段和 1.2 算法描述 由于题目限定该题时间复杂度为O(n),所以无法运用传统的多重for循环方法以及分治算法来实现,不过此时我们可以考虑用动态规划的思想来实现。 算法思想为: D[i]是以第i个数开 -
第三章上机实践报告
一、问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 输入格式: 输入有两行: 第一行是n值(1<=n<=10000); -
算法第三章上机实践报告
7-1 最大子段和 1.1 问题描述 1.2 算法描述 int Maxsum(int n, int a[]) { int sum = 0,b=0; for(int i=1;i<=n;i++) { if(b>0) b+=a[i]; else b=a[i]; if(b>sum) sum=b; } ret -
算法第三章上机实践报告
1.1问题描述:给出一组数字,求这组数字的最大子段和。 1.2算法描述:初始化; 设置一个max函数,在函数里面设置一个b[i],b[i]是指i前面的数字(包括i)到数字i的最大子段和;通过比较b[i](0=<i<=n),得到c(最大的b[i]),然后返回c; 在main函数里,输入n,通过for循 -
算法第三章上机实践报告
算法第三章上机实践报告 1.实践题目名称 7-1 最大子段和 1.1问题描述 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。要求算法的时间复杂度为O(n)。 1. -
算法第三章上机实践报告
1. 问题分析 1.1 问题描述 7-1 最大子段和 (25 分) 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时,定义子段和为0。 要求算法的时间复杂度为O(n)。 1.2 算法 -
算法第三章上机实践报告
1.实践报告 1.1问题描述 设计一个O(n^2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。 1.2算法描述 求解该问题须记录的数据我们用两个数组(num,D)和两个变量(max,t)表示。 arr[i]:表示输入的n个数组中的第i个; num[i]:表示以arr[i]为尾元素的单调递 -
算法第三章上机实践报告
实践报告 1.1问题描述 最低通行费 一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。 这个商人期望在规定时间内 -
算法第3章实践报告
算法第3章实验报告——动态规划