算法设计与分析
布丁吖
这个作者很懒,什么都没留下…
展开
-
两个数的最大公因数
想要找出两个数的最大公因数,最笨的方法就是蛮力法,除此之外还有欧几里得算法(包括除法和减法)。第一种方法:蛮力法 蛮力法就是注意寻找最小公因数,然后在相乘,就是数学中的短除法找最大公因数int main() { int m; int n; int factor = 1; printf("请输入m和n:\n"); //m和n的值随机产生 srand(ti原创 2018-03-18 14:05:30 · 2650 阅读 · 0 评论 -
字符串的模式匹配--BF算法&KMP算法
BF算法是基于主串指针回溯,重新与子串进行逐字符进行比较,主串为S什么要进行回溯呢,原因在于模式P中存在相同的字符或者说由字符(串)存在重复(模式的部分匹配性质),设想如果模式P中字符各不相同,主串就S的指针就根本不需要回溯;然而,我们可以发现在主串S与模式发生失配时,主串指针进行回溯会影响效率,因为由于模式S本身字符的部分部分匹配性质,回溯之后,主串S与模式T有些部分比较是没有必要的,这就是对BF原创 2018-04-05 13:58:59 · 9345 阅读 · 0 评论 -
假币问题(八枚硬币及n枚硬币)
八枚硬币 问题描述 1、有八枚外观相同的硬币,其中有一枚是假币 2、不知道假币较重还是较轻可以用减治法来求解假币问题原创 2018-05-30 22:28:20 · 16839 阅读 · 4 评论 -
动态规划、分治法、蛮力法求解最大子段和
问题定义: 给定n个整数9可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,...原创 2018-06-14 23:53:39 · 15929 阅读 · 1 评论