算法
花郎徒结
这个作者很懒,什么都没留下…
展开
-
一种基数排序的Java实现
基数排序 原理不多说了,适用于输入数据量n远大于数据最高位数m的情况。给出一种简单实现,不太想写特别底层的逻辑,中间依赖下TreeMap。package com.jxshen.example.algorithm.sort;import java.util.Collections;import java.util.Iterator;import java.原创 2017-06-01 18:53:30 · 397 阅读 · 0 评论 -
Sunday算法的一种Java实现(Leetcode28. Implement strStr())
Leetcode第28题Implement strStr()。即寻找字符串里模式串第一次出现的位置。这类字符串匹配查找的问题,无外乎KMP,BM,Sunday算法。KMP太烧脑,BM和Sunday算法本质上是一样的,但是Sunday算法更取巧,效率更高(天下间的算法要是都有像Sunday算法那样短小精悍的版本,该多好...)。具体原理网上各种有。直接上代码:public c原创 2017-07-30 23:35:46 · 939 阅读 · 0 评论 -
堆排序的Java实现(用最大堆实现从小到大排序)
堆排序原理和示意图不多说了,网上各种有。总结下其最核心的思想:(1)自底向上,自右向左遍历建堆。这里的底不是指最后一个节点,而是最后一个非叶子节点。每个非叶子节点与其左儿子与右儿子(假如有的话)相比,如果父节点小,那么将左右儿子中较大的那个与父节点交换,然后递归调整被交换的儿子所在的子树,让其继续满足堆性质。(2)自顶向下调整,使得整个二叉树和其任意子树都满足堆特性。内容和上面建堆中的递归原创 2017-11-16 12:44:34 · 2728 阅读 · 0 评论