算法设计
文章平均质量分 61
CC_YXK
这个作者很懒,什么都没留下…
展开
-
排列问题(递归算法)
问题描述:对n个元素进行全排列,列出所有情况,例如1,2,3三个数字会得到1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1这6中情况思路:设n为元素个数,元素集合为R(r1,r2,r3....rn),计算方法为Perm(n)当n = 1时,则只有一种情况 r;当n > 1时,则有(r1)Perm(R1),(r2)Perm(R2),(r3)Perm(R3) ...原创 2018-09-05 23:32:48 · 8887 阅读 · 2 评论 -
整数划分问题(递归算法)
问题描述:将正整数n表示成一系列正整数之和,求有多少中划分方法。例如正整数6有以下划分方法:最大加数为6时,有1种划分: 6;最大加数为5时,有1种划分: 5 + 1;最大加数为4时,有2种划分: 4 + 2,4 + 1 + 1;最大加数为3时,有3种划分: 3 + 3,3 + 2 + 1,3 + 1 + 1 + 1;最大加数为2时,有3种划分: 2 + 2 + 2,2 + 2...原创 2018-09-06 11:04:48 · 6265 阅读 · 1 评论 -
汉诺塔问题 -- 递归算法
hanoi塔问题描述: 设a、b、c是3个塔座。开始时a塔座一共有n个圆盘,这些圆盘自下而上,由大到小地叠放在一起,各圆盘从大到小编号为1,2,3......n,要求将塔座a上地这一叠圆盘移到b上,并仍按同样地顺序叠置。在移动圆盘时应遵守以下移动规则:每次只能移动一个圆盘 任何时刻都不允许将较大的圆盘压在较小的圆盘之上 在满足移动规则1和2的前提下,可将圆盘移置a b c任一塔座。...原创 2018-09-10 15:35:51 · 567 阅读 · 0 评论 -
子串问题(BF算法、KMP算法)
一、问题描述假设字符串A: "abcababcabc" 字符串B:"abcabc"因为字符串A中有一部分和B相同,则称字符串B为字符串A的子串二、BF算法用i 和 j 分别表示字符串AB的下标,初始值都为0。下标 0 1 2 3 4 5 6 7 8 9 10 字符串A a b ...原创 2018-10-13 11:24:51 · 1544 阅读 · 0 评论 -
一致性哈希算法
一致性哈希是一种常永于负载均衡的分布式算法。首先我们看一个案例:1、我们有3台服务器S0、S1、S2.2、与此同时我们还有10万张图片需要均匀的缓存在这三台服务器上如何实现将图片均匀的缓存在三台服务器上来减轻缓存的压力一、传统哈希算法首先对图片名称进行哈希计算得到哈希值 用这个哈希值对机器数取模算出该放在哪一个服务器上假设对图片名称进行哈希计算得到的数值为6,此时服务器数为...原创 2019-03-06 23:13:06 · 182 阅读 · 0 评论 -
10亿数据找出前100大的数据
方法1:利用堆排实现取前m个数,建立一个小根堆。建堆的时间复杂度为O(mlogm) 顺序读取后边的元素,如果该元素比堆顶的元素小,直接丢弃。如果大于堆顶的元素则替换它,然后调整堆,最坏的情况是每一次都需要调整堆。时间复杂度为O(nlogm)。n为数据总数,m表示前m大的数。方法2:快排划分的思想首先对数据进行划分,并且划分之后,持续对基准右边的数据继续递归 直到右边的数据小于100,...原创 2019-03-07 21:59:05 · 3205 阅读 · 0 评论 -
大整数相乘
题目描述:有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。思路分析:根据我们手算的规则定义一个新的字符串来表示结果,新的字符串长度为想成的两个字符串之和 将第二个数从右到左每一位与第一个数计算,将计算的结果加到新字符串的合适位置。注意:计算的时候要保存上一次计算的进位数。 维护一个移位数,第二个字符串每算完一位,移位数要加1。移位数也决...原创 2019-03-17 21:52:02 · 386 阅读 · 0 评论