#include #include #include #include #include using namespace std; const int maxn = 2000; int a[maxn]; int b[maxn]; int c[maxn]; char s[maxn]; char t[m... ...
分类:
其他好文 时间:
2018-10-01 19:55:18
阅读次数:
132
2018-09-27 22:42:13 一、大整数加法 问题描述: 问题求解: 二、大整数乘法 问题描述: 问题求解: ...
分类:
其他好文 时间:
2018-09-27 23:55:12
阅读次数:
183
1.描述:找出数组A的和最大的非空连续子数组,我们称这样的连续子数组为最大子数组。 2. 用分治策略来求解。 a. 假设我们要求A的子数组A[low, high]的最大子数组。根据分治策略,我们先将A[low,high] 平分 b. 那么 A[low,highj]的子数组A[i,j]只有三种可能 a ...
分类:
编程语言 时间:
2018-09-02 20:20:33
阅读次数:
186
只有当数组中包含负数时,最大子数组问题才有意义。如果所有元素都是非负的,最大子数组问题没有任何意义,因为整个数组和肯定是最大的 ...
分类:
编程语言 时间:
2018-08-12 17:33:42
阅读次数:
128
二分查找 概念: 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求 线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 算法复杂度: 二分查找法也称为折半查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况 下用O(log n) ...
分类:
其他好文 时间:
2018-08-03 23:13:55
阅读次数:
297
快速排序使用分治策略(Divide and Conquer)来把一个序列分为两个子序列。步骤为: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于ke ...
分类:
编程语言 时间:
2018-07-25 22:07:44
阅读次数:
120
/ 斐波那契数列是 f(0)=0 n=0 f(1)=1 n=1 f(n 1)+f(n 2) n 1 如果采用递归求数列,有很多数字需要重复计算多次,采用分治法可以避免重复计算, 使计算的时间复杂段由指数级变为线性的O(n) / public int fibonacci(int n){ int rs ...
分类:
其他好文 时间:
2018-07-25 20:45:34
阅读次数:
212
乘法的计算比加法要麻烦,主要有两个思路: 1. 模拟手算 2. 先不管所有进位计算,最后统一处理进位 乘法手算的步骤: 还是用string来表示数字,乘积的位数最大为两个相乘数的位数和,所以开始就可给定结果的位数。为了节省内存,我们用了一个小技巧:用result来表示每次相乘的和,这样就不需额外声明 ...
分类:
其他好文 时间:
2018-07-22 15:17:59
阅读次数:
149
二分法是分治算法的一种特殊形式,利用分治策略求解时,所需时间取决于分解后子问题的个数、子问题的规模大小等因素,而二分法,由于其划分的简单和均匀的特点,是查找数据时经常采用的一种有效的方法。 快速排序的实质也是二分法,下面就写一个快速排序+二分法查找的栗子🌰: 运行结果为: ...
分类:
编程语言 时间:
2018-06-15 21:46:22
阅读次数:
135
大整数乘法:概念上就是一个用int,long, long long ,double等存不了的数,长度为几百位 所以我们用字符串来存储并且从最小位开始存,然后大整数乘法也就转化成了 小学里的竖式乘法的问题。 例题: 链接:https://www.nowcoder.com/acm/contest/118 ...
分类:
其他好文 时间:
2018-05-09 17:28:08
阅读次数:
179