算法和数据结构
colie_li
coding
展开
-
数组相关操作
java 数组操作原创 2015-01-12 17:48:25 · 664 阅读 · 0 评论 -
常用排序--冒泡/快速排序
冒泡排序是两个相临位置的数据进行比较,按照逻辑从大到小还是从小到大进行调换,确定一个数字为一趟. public class Maopao { public static void main(String[] args) { int [] target={5,3,4,2,11,8,7}; int t =0; int length = target.length; for(in原创 2015-07-06 11:18:47 · 718 阅读 · 0 评论 -
Java实现双数组Trie树(DoubleArrayTrie,DAT)
原文地址:Java实现双数组Trie树(DoubleArrayTrie,DAT) 传统的Trie实现简单,但是占用的空间实在是难以接受,特别是当字符集不仅限于英文26个字符的时候,爆炸起来的空间根本无法接受。 双数组Trie就是优化了空间的Trie树,原理本文就不讲了,请参考An Efficient Implementation of Trie Structures,本程序的编写也转载 2016-08-31 16:54:21 · 978 阅读 · 0 评论 -
跳跃表-原理及Java实现
跳跃表的引入 我们知道,普通单链表查询一个元素的时间复杂度为O(n),即使该单链表是有序的,我们也不能通过2分的方式缩减时间复杂度。 如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。转载 2017-05-03 19:30:02 · 498 阅读 · 0 评论