51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#算法的乐趣
一致性哈希算法学习及JAVA代码实现分析
1,对于待存储的海量数据,如何将它们分配到各个机器中去?---数据分片与路由当数据量很大时,通过改善单机硬件资源的纵向扩充方式来存储数据变得越来越不适用,而通过增加机器数目来获得水平横向扩展的方式则越来越流行。因此,就有个问题,如何将这些海量的数据分配到各个机器中?数据分布到各个机器存储之后,又如何进行查找?这里主要记...
代码星球
·
2020-04-04
一致性
哈希
算法
学习
JAVA
AVL树的JAVA实现及AVL树的旋转算法
1,AVL树又称平衡二叉树,它首先是一颗二叉查找树,但在二叉查找树中,某个结点的左右子树高度之差的绝对值可能会超过1,称之为不平衡。而在平衡二叉树中,任何结点的左右子树高度之差的绝对值会小于等于1。2,为什么需要AVL树呢?在二叉查找树中最坏情况下查找某个元素的时间复杂度为O(n),而AVL树能保证查找操作的时间复杂度...
代码星球
·
2020-04-04
AVL
树的
JAVA
实现
旋转
用贪心算法近似求解 Loading Balance 问题(作业调度的负载均衡)
一,LoadingBalance问题描述:有m台相同的机器及n个作业,其中m={M(1),M(2),……M(m)}、n={J(1),J(2),……J(n)}。每个作业都有一个处理时间,记为t。如,;t(j)表示作业J(j)的处理时间。任意机器在某个时刻只能处理一个...
代码星球
·
2020-04-04
贪心
算法
近似
求解
Loading
贪心算法之活动选择问题--求解现实问题的思路
参考《算法导论第二版P222页)一,如何把现实的问题转变成数学问题?即数学建模的思路?1,问题描述:现有一组相互竞争的活动,如何调度能够找出一组最大的活动(活动数目最多)使得它们相互兼容?2,问题转化:首先,按活动的结束时间单调递增进行排序。那么,为什么要按结束时间排序呢?这个问题留到后面解释。其次,定义合适的问题子空...
代码星球
·
2020-04-04
贪心
算法
活动
选择
问题
插入排序算法的JAVA实现
1,对元素进行排列时,元素之间需要进行比较,因此需要实现Comparable<T>接口。即,<TextendsComparable<T>>.更进一步,如果允许待比较的类型可以和它的父类型进行比较,则需要写成:<TextendsComparable<?superT>,...
代码星球
·
2020-04-04
插入
排序
算法
JAVA
实现
选择排序算法的JAVA实现
1,采用选择排序对元素进行排列时,元素之间需要进行比较,因此需要实现Comparable<T>接口。即,<TextendsComparable<T>>.更进一步,如果允许待比较的类型可以和它的父类型进行比较,则需要写成:<TextendsComparable<?super...
代码星球
·
2020-04-04
选择
排序
算法
JAVA
实现
【算法总结】图论-拓扑排序
【算法总结】图论-拓扑排序一、概念设有一个有向无环图(DAG图),对其进行拓扑排序即求其中结点的一个拓扑序列,对于所有的有向边(U,V)(由U指向V),在该序列中结点U都排列在结点V之前。满足该要求的结点序列,被称为满足拓扑次序的序列。求这个序列的过程,被称为拓扑排序。由满足拓扑次序序列的特征我们也能得出其如下特点:若...
代码星球
·
2020-04-04
算法
总结
图论
拓扑
排序
【算法总结】图论-最短路径
【算法总结】图论-最短路径一、概念最短路径问题。即寻找图中某两个特定结点间最短的路径长度。所谓图上的路径,即从图中一个起始结点到一个终止结点途中经过的所有结点序列,路径的长度即所经过的边权和。 二、Floyd算法用邻接矩阵保存原图,那么此时邻接矩阵中edge[i][j]的值即表示从结点i到结点j,中间不经过任...
代码星球
·
2020-04-04
算法
总结
图论
最短
路径
【算法总结】图论-最小生成树
【算法总结】图论-最小生成树一、概念在一个无向连通图中,如果存在一个连通子图包含原图中所有的结点和部分边,且这个子图不存在回路,那么我们称这个子图为原图的一棵生成树。在带权图中,所有的生成树中边权的和最小的那棵(或几棵)被称为最小生成树。定理:在要求解的连通图中,任意选择一些点属于集合A,剩余的点属于集合B,必定存在一...
代码星球
·
2020-04-04
算法
总结
图论
最小
生成
【算法总结】图论-并查集
【算法总结】图论-并查集一、概念:并查集并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结...
代码星球
·
2020-04-04
算法
总结
图论
查集
【算法总结】图论-预备知识
【算法总结】图论-预备知识 邻接矩阵:用一个二维数组来表示图的相关信息,如edge[i][j]表示结点i和结点j之间的关系(以及权重)——在表示的图为稠密图,且频繁地判断特定结点对是否相邻时,使用邻接矩阵较为适宜。邻接链表:链式存储结构,为图的每个顶点建立一个单链表,第i个单链表中保存...
代码星球
·
2020-04-04
算法
总结
图论
预备
知识
【算法总结】数学问题-高精度整数
【算法总结】高精度整数我们首先明确高精度整数的保存形式,我们常用如下结构体来保存一个高精度整数structbiginteger{intdigit[1000];//保存大整数中若干位的数字,暂且使用每4位为一个单位保存intsize;//size是digit数组中第一个我们还未使用的数组单元,即digit数组下一个存储单...
代码星球
·
2020-04-04
算法
总结
数学
问题
高精度
【算法总结】数学问题-素数
【算法总结】素数素数即只能被自身和1整除的大于1的正整数。一、素数判定怎样确定一个数是素数?我们可以用所有大于1小于其本身的整数去试着整除该数,若在该区间内存在某个数能整除该数则该数不是素数;若这些数都不能整除它,则该数为素数。这一朴素的算法思想时间复杂度为O(n),n为我们要测试的数字。但其实,我们并不用测试到n-1...
代码星球
·
2020-04-04
算法
总结
数学
问题
素数
【算法总结】数学问题-最大公约数和最小公倍数
【算法总结】最大公约数和最小公倍数一、最大公约数(GCD:greatest common divisor)欧几里得算法:若a、b全为零则它们的最大公约数不存在;若a、b其中之一为零,则它们的最大公约数为a、b中非零的那个;若a、b都不为零,则使新a=b;新b=a%b,然后重复该过程。 例4...
代码星球
·
2020-04-04
算法
总结
数学
问题
最大公约数
【算法总结】数学问题-%运算符与取余运算
【算法总结】%运算符与取余运算取余套路:对取得的余数加上除数后,再对该和求除数的模,即可解决符号问题,保证取余结果恒正。(这里b是绝对值,恒大于0)ans=(r+b)%b一、数位拆解数位拆解即把一个给定的数字(如3241)各个数位上的数字拆开,即拆成3、2、4、1。例4.1特殊乘法AC代码(数学方法)#include&...
代码星球
·
2020-04-04
算法
总结
数学
问题
运算符
首页
上一页
...
102
103
104
105
106
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他