数据结构与算法
moc ^_^
且放白鹿青崖间,须行即骑访名山……
展开
-
栈基础
一种后进先出的数据结构,Last In First Out (LIFI)应用举例Undo操作(撤销)程序调用的系统栈栈的实现Stackvoid push(E) O(1) 均摊E pop() O(1) 均摊E peek() O(1)int getSize() ...原创 2019-02-06 10:23:34 · 89 阅读 · 0 评论 -
队列基础
一种线性结构相比数组,队列的操作时数组操作的子集只能从一段(队尾)添加元素,只能从另一端(队首)取出元素一种先进先出的数据结构 First In First Out (FIFO)队列的实现Queuevoid enqueue(E) O(1) 均摊E dequeue() O(n)E getFront() ...原创 2019-02-06 10:36:12 · 100 阅读 · 0 评论 -
二分搜索树
二叉树class Node { E e; Node left; Node right;}二叉树具有唯一的根节点二叉树每个节点最多有两个孩子,左孩子、右孩子二叉树每个结点只有一个父结点二叉树具有天然的递归性,每个节点与其子孙节点都可看成一棵树空也是二叉树二分搜索树二分搜索树是二叉树二分搜索树的每个节点的值:大于其左子树的所有节点的值...原创 2019-02-06 11:16:03 · 62 阅读 · 0 评论 -
集合与映射
集合Setvoid add(E) 不能添加重复元素void remove(E)boolean contains(Eint getSize()boolean isEmpty()二分搜索树实现集合public class BSTSet<E extends Comparable<E>> implements Set<E>...原创 2019-02-06 11:23:28 · 124 阅读 · 0 评论 -
线段树
也称区间树,英文Segment tree.一、引入经典线段树问题1:区间染色有一面墙,长度为n,每次选择一段墙进行染色4 – 9 绘成橙色7 – 15 绘成绿色1 – 5 绘成蓝色6 – 12绘成红色m次操作后,我们可以看见多少种颜色?m次操作后,我们可以在[i, j]区间内看见多少种颜色?数组实现分析染色操作(更新区间) => O(n)查询操作(...原创 2019-02-17 19:43:05 · 242 阅读 · 0 评论 -
Trie
Trie也称字典树、前缀数。一、什么是Trie每个节点有若干个指向下个节点的指针,考虑不同的语境class Node { boolean isWord; Map<char, Node> next;}二、Trie的逻辑实现添加新词word查询是否存在新词word查询是否存在以prefix为前缀的词import java.util.TreeMa...原创 2019-02-18 17:31:02 · 177 阅读 · 0 评论 -
随机模拟问题
随机模拟方法也称蒙特卡罗法或统计试验法,是利用计算机进行数值计算的一种方法,它的适用范围非常广泛,既能求解确定性问题,也能求解随机性的问题。问题引入房间里有100个人,每人都有100元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的?模拟演示结果:一、视图层import javax.swing.*;import java.a...原创 2019-02-19 14:57:00 · 870 阅读 · 0 评论 -
蒙特卡洛算法
蒙特卡洛算法(Monte Carlo Method)更准确的说是一种方法,是一种统计学的方法,是一种模拟的方法。蒙特卡洛模拟是二战期间,为了解决原子弹研制工作中,裂变物资的中子随机扩散问题,美国数学家冯 诺依曼和乌拉姆等提出的一种统计方法,代号:蒙特卡洛(摩纳哥二战时期非常著名的赌城)。通过大量随机样本,去了解一个系统,进而得到所要计算的值。一、蒙特卡洛方法求π值圆的面积 = ...原创 2019-02-19 15:02:08 · 7583 阅读 · 0 评论