算法
文章平均质量分 67
大吒吒
这个作者很懒,什么都没留下…
展开
-
查找(一):简单符号表
1.1 符号表符号表主要运用于键值对(key-value)的操作。用例能够将一个键值对插入符号表,并希望在以后能够从符号表中按照键(key)找到相应的值(value)。 符号表从某种意义上与数组类似,数组通过下标来寻找值,符号表通过key来寻找值。 符号表的规则也与数组类似: 1. 每个key只对应一个value; 2. 当向表中存入的key与已有的key冲突时,新的value会覆盖旧的原创 2016-08-09 16:37:51 · 2688 阅读 · 0 评论 -
查找(二):有序符号表
1.2 有序符号表一个无序的符号表几乎是不可用的,因为其插入或查询的时间复杂度总是O(N)。对于大量的数据的操作性能十分低下。因此,实现一个有序的符号表十分必要。1.2.1 一个有序符号表API 方法名称 功能 void put(Key key,Value val) 将键值存入表中(若值为空则将键key从表中删除) Value get(Key key) 获取键key对于的值(若k原创 2016-08-09 17:51:34 · 2344 阅读 · 0 评论 -
几种常见的排序算法
选择排序选择排序:每次在未排序部分选择一个最小的放到前面,并把最小值的标记向后移动一位 特点: 1. 运行时间和输入无关(但是并没有用,因为即使输入时是有序的,仍然会进行遍历与比较,复杂度不变 2. 数据移动量是最少的,因为每次只移动一个元素,移动N次 时间复杂度:最坏n^2,最优n^2平均n^2 缺点:未排序部分若有序,仍会继续遍历 public static void原创 2016-12-02 13:24:32 · 275 阅读 · 0 评论 -
如何写一棵AVL树
二叉查找树二叉查找树有一个缺陷就是查询效率跟树的高度有关。在极端情况下,查询效率为n。 如何解决二叉查找树效率低问题要增加查询效率,高效的方案是在插入的时候对树进行一下平衡操作,降低树的高度,从而减少查询次数。 如何将普通二叉树变为平衡二叉树解决方案:在插入和删除阶段进行适当的调整在平衡二叉树中有这样一个规定: 对于任意一个节点,如果其左右子树高度差小于1,那么该节点是平衡的所以对于节点X原创 2017-01-06 17:39:57 · 892 阅读 · 2 评论