排序:
默认
按更新时间
按访问量

Hash 哈希与加盐哈希、常用的哈希算法

1、常见hash算法的原理 http://blog.jobbole.com/106733/ 2、到底什么是hash? https://www.zhihu.com/question/26762707 3、加盐密码保存的最通用方法是? https://www.zhihu.com/questi...

2018-05-13 16:06:39

阅读数:160

评论数:0

BitMap 、布隆过滤器

1、数学之美系列二十一 - 布隆过滤器(Bloom Filter) https://china.googleblog.com/2007/07/bloom-filter_7469.html 2、【算法】哈希表、Bitmap与布隆过滤器 http://dogless.farbox.com/pos...

2018-05-10 18:22:19

阅读数:58

评论数:0

数据结构基础——数组与链表的区别

数组: 数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访...

2018-04-16 15:43:10

阅读数:47

评论数:0

数据结构与算法分析(Java 语言描述)(36)—— 使用两个队列实现一个栈

思路:入栈操作: 直接对 queue_1 进行 add 操作 出栈操作: 若 queue_1 的长度 > 1,对 queue_1 进行 remove 操作,将这些数据放入 queue_2 中,直到 queue_1 只剩下一个元素为止 queue_1 剩余的元素即为应该 出栈的元素, rem...

2017-12-11 16:20:44

阅读数:286

评论数:0

数据结构与算法分析(Java 语言描述)(35)—— 使用两个栈实现一个队列

思路:当进行入队操作的时候 检查 stack_2 是否为空 若 stack_2 非空,将 stack_2 中的数据放入 stack_1 中 将需要入队的数据 push 到 stack_1 中 当进行出队操作的时候 检查 stack_1 是否为空 若 stack_1 非空,将 stack_1 的数据...

2017-12-11 15:52:16

阅读数:223

评论数:0

数据结构与算法分析(Java 语言描述)(34)—— BST 的深度优先遍历(非递归实现)

先序遍历void preOrder(Node node){ Stack<Node> stack = new Stack<>(); while(node != null || !stack.isEmpty()){ while(node != n...

2017-12-11 12:24:32

阅读数:248

评论数:0

数据结构与算法分析(Java语言描述)(33)—— 散列表

1 概述符号表是一种用于存储键值对(key-value pair)的数据结构,我们平常经常使用的数组也可以看做是一个特殊的符号表,数组中的“键”即为数组索引,值为相应的数组元素。也就是说,当符号表中所有的键都是较小的整数时,我们可以使用数组来实现符号表,将数组的索引作为键,而索引处的数组元素即为键...

2017-12-06 17:49:11

阅读数:557

评论数:0

常用的排序算法性能分析(2)—— 归并排序、快速排序

归并排序要将一个数组排序,可以先(递归地)将它分成两半分别排序,然后将结果归并起来。自顶向下的归并排序归并排序应用了分治的思想,如果它能将两个子数组排序,它就能够通过归并两个子数组来将整个数组排序。命题F:对于长度为 N 的任意数组,自顶向下的归并排序需要 (1/2)*NlgN 到 NlgN 次...

2017-11-28 10:14:07

阅读数:517

评论数:0

常用的排序算法性能分析(1)—— 选择排序、插入排序、希尔排序

规则排序成本模型:在研究排序算法时,我们需要计算比较和交换的数量。对于不交换元素的算法,我们会计算访问数组的次数。排序算法可以分为两类: 除了函数调用所需的栈和固定数目的实例变量之外无需额外内存的原地排序算法 需要额外内存空间来存储另一份数组副本的其他排序算法 选择排序 首先,找到数组中最小的那个...

2017-11-28 08:54:08

阅读数:407

评论数:0

数据结构与算法分析(Java语言描述)(32)—— 使用 Kruskal 算法求有权图的最小生成树

将图中的所有边存到最小堆中当最小堆非空 取出权重最小的边 如果此边的两个端点是连接的 跳出本次循环 将此边加入 mst 中 在并查集中 union 此边的两端点package com.dataStructure.weight_graph;import...

2017-11-21 19:34:22

阅读数:529

评论数:0

数据结构与算法分析(Java语言描述)(31)—— 使用 Prim 算法求有权图的最小生成树(MST)

最小生成树切分定理LazyPrimpackage com.dataStructure.weight_graph;import com.dataStructure.heap.MinHeap;import java.util.ArrayList; import java.util.List;publi...

2017-11-21 16:36:27

阅读数:580

评论数:0

数据结构与算法分析(Java语言描述)(30)—— 有权图的实现

使用 Edge.java 存放两节点之间的边Edge.javapackage com.dataStructure.weight_graph;// 有权图的边 public class Edge<Weight extends Number & Comparable> implem...

2017-11-21 11:04:00

阅读数:635

评论数:0

数据结构与算法分析(Java语言描述)(29)—— 广度优先遍历与最短路径

package com.dataStructure.graph;// 使用 广度优先遍历 查找节点之间的最短路径import java.util.*;public class ShortestPath { private Graph graph; private int start...

2017-11-20 23:52:00

阅读数:273

评论数:0

数据结构与算法分析(Java语言描述)(28)—— 使用 dfs 求两节点间的路径

package com.dataStructure.graph;import java.util.ArrayList; import java.util.List; import java.util.Stack;// 使用 dfs 获取两节点之间的路径public class Path { ...

2017-11-20 23:22:46

阅读数:322

评论数:0

数据结构与算法分析(Java语言描述)(27)—— 深度优先遍历与连通分量

package com.dataStructure.graph;// 求无权图的联通分量public class Components { private Graph graph; // 存放输入的数组 private boolean[] visited; // 存放节点被访...

2017-11-20 22:54:45

阅读数:250

评论数:0

数据结构与算法分析(Java语言描述)(26)—— 邻接矩阵表示稠密图

package com.dataStructure.graph;//// 稠密图 - 使用邻接矩阵表示 //public class DenseGraph { // // private int n; // 节点数 // private int m; // 边数 // pri...

2017-11-16 23:48:53

阅读数:354

评论数:0

数据结构与算法分析(Java语言描述)(25)—— 邻接表表示稀疏图

package com.dataStructure.graph;import java.util.ArrayList; import java.util.List;//// 稀疏图 - 邻接表 //public class SparseGraph { // // private int n;...

2017-11-16 23:47:43

阅读数:349

评论数:0

数据结构与算法分析(Java语言描述)(24)—— 并查集的路径压缩

package com.dataStructure.union_find;public class UnionFind5 { private int[] parent; private int[] rank; private int count; public Uni...

2017-11-16 15:25:26

阅读数:483

评论数:0

数据结构与算法分析(Java语言描述)(23)—— 并查集基于 size 和 rank 的优化

基于 size 的优化package com.dataStructure.union_find;public class UnionFind3 { private int[] parent; // parent[i]表示第一个元素所指向的父节点 private int[] size...

2017-11-16 15:23:57

阅读数:467

评论数:0

数据结构与算法分析(Java语言描述)(22)—— 并查集 Quick-Find

package com.dataStructure.union_find;public class UnionFind2 { // parent[i] 表示第一个元素所指向的父节点 private int[] parent; private int count; pu...

2017-11-16 15:18:44

阅读数:472

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭