Algorithm
文章平均质量分 84
likaiwalkman_Victor
这个作者很懒,什么都没留下…
展开
-
0-1背包基础问题
package backpack;public class Pack { public Pack(Goods[] goods, int volumn) throws InstantiationException { this.goods = goods; this.volumn = volumn; } public int maxValue(){ return pa原创 2015-09-24 15:08:25 · 331 阅读 · 0 评论 -
计数排序Counting sort
经典排序算法 - 计数排序Counting sort注意与基数排序区分,这是两个不同的排序计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶看下具体的过程,一共需要三个数组,分别是待排数组,票箱数组,和桶数组var unsorted = new int[转载 2017-01-11 22:29:00 · 285 阅读 · 0 评论 -
基数排序
经典排序算法 - 基数排序Radix sort原理类似桶排序,这里总是需要10个桶,多次使用首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数例如待排序数组[62,14,59,88,16]简单点五个数字分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样| 0 | 0 | 62 | 0转载 2017-01-11 22:28:13 · 221 阅读 · 0 评论 -
Sort Colors -- LeetCode
Sort Colors -- LeetCode2014-04-22 08:06 本站整理 浏览(250)原题链接: http://oj.leetcode.com/problems/sort-colors/ 这道题也是数组操作的题目,其实就是要将数组排序,只是知道数组中只有三个元素0,1,2。熟悉计数排序的朋友可能很快就发现这其实就是使用计数排序,元素空间只需转载 2017-01-11 00:17:39 · 302 阅读 · 0 评论 -
计数排序Counting sort
经典排序算法 - 计数排序Counting sort经典排序算法 - 计数排序Counting sort注意与基数排序区分,这是两个不同的排序计数排序的过程类似小学选班干部的过程,如某某人10票,作者9票,那某某人是班长,作者是副班长大体分两部分,第一部分是拉选票和投票,第二部分是根据你的票数入桶看下具体的过程,一共需要三个数组,分别是待排数组,转载 2017-01-10 23:52:38 · 244 阅读 · 0 评论 -
Timsort原理介绍
翻译自 维基百科Timesort Timsort是结合了合并排序(merge sort)和插入排序(insertion sort)而得出的排序算法,它在现实中有很好的效率。Tim Peters在2002年设计了该算法并在Python中使用(TimSort 是 Python 中 list.sort 的默认实现)。该算法找到数据中已经排好序的块-分区,每一个分区叫一个run,然后按转载 2017-01-10 10:32:24 · 462 阅读 · 0 评论 -
布隆过滤器 (Bloom Filter) 详解
布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中。在垃圾邮件过滤的黑白名单方法、爬虫(Crawler)的网址判重模块中等等经常被用到。哈希表也能用于判断元素是否在集合中,但是布隆过滤器只需要哈希表的1/8或1/4的空间复杂度就能完成同样的问题。布隆过滤器可以插入元转载 2017-01-10 09:17:25 · 489 阅读 · 0 评论 -
R-B Tree
A red–black tree is a kind of self-balancing binary search tree. Each node of the binary tree has an extra bit, and that bit is often interpreted as the color (red or black) of the node. These color转载 2016-06-08 10:22:20 · 793 阅读 · 0 评论 -
Single Number II
Single Number II Total Accepted: 12144 Total Submissions: 37399My SubmissionsGiven an array of integers, every element appears three times except for one. Find that single one.Note:转载 2016-05-05 00:21:46 · 318 阅读 · 0 评论 -
位图bitmap算法(java)
位图bitmap算法(java) 标签: 算法java数据库磁盘存储c2010-03-28 13:53 7182人阅读 评论(3) 收藏 举报 分类: 算法/思想(6) 版权声明:本文为博主原创文章,未经博主允许不得转载。简单的说就是用数组存放若有数据就标志为1或true,若不存在标志为0或false。比如1,2,2,5,这里最大值为5,转载 2016-05-05 00:12:24 · 329 阅读 · 0 评论 -
双指针法的常见应用
【算法总结--数组相关】双指针法的常见应用。 标签: 算法pivotnull面试2012-08-10 10:09 3247人阅读 评论(0) 收藏 举报 分类: 数据结构、算法(20) 版权声明:本文为博主原创文章,未经博主允许不得转载。 所谓双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同转载 2016-02-23 00:57:00 · 561 阅读 · 0 评论 -
数据结构实践——迷宫问题之图深度优先遍历解法
本文是针对[数据结构基础系列(7):图]的实践项目。【项目 - 迷宫问题之图深度优先遍历解法】 设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。 (1)建立迷宫对应的图数据结构,并建立其邻接表表示。 (2)采用深度优先遍历的思路设计算法,输出从入口(1,1)点到出口(M,N)的所有迷宫路径。 [模型建立] 将迷宫中的每一格作为一个顶点,转载 2016-01-29 03:17:35 · 750 阅读 · 0 评论 -
算法系列---回溯算法
算法系列---回溯算法引言 寻找问题的解的一种可靠的方法是首先列出所有候选解,然后依次检查每一个,在检查完所有或部分候选解后,即可找到所需要的解。理论上,当候选解数量有限并且通过检查所有或部分候选解能够得到所需解时,上述方法是可行的。不过,在实际应用中,很少使用这种方法,因为候选解的数量通常都非常大(比如指数级,甚至是大数阶乘),即便采用最快的计算机也只能解决规模转载 2016-01-28 09:44:10 · 365 阅读 · 0 评论 -
【坐在马桶上看算法】算法8:巧妙的邻接表(数组实现)
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。1234564 51 4 94 3 81 2 52 4 61转载 2016-01-25 21:18:04 · 285 阅读 · 0 评论 -
【坐在马桶上看算法】算法12:堆——神奇的优先队列(下)
接着上一Pa说。就是如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),代码如下。1234567n=0;for(i=1;i{转载 2016-01-25 21:17:15 · 333 阅读 · 0 评论 -
【啊哈!算法】算法11:堆——神奇的优先队列(上)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢? 假如有14个数分别是9转载 2016-01-25 21:16:36 · 343 阅读 · 0 评论 -
坐在马桶上看算法:快速排序
坐在马桶上看算法:快速排序2014-03-03 16:44 啊哈磊 51CTO博客 我要评论(0) 字号:T | T算法的精髓在于,跟它一比高数也显得那么生动活泼…。本文由啊哈磊吐槽而成,话说我还是头一次见到这么萌的变量,简直颠覆我对变量这个兵种、对算法这个种族的传统观念。正在被算法欺负吗?快进来看看:AD:【51CTO技术沙龙】春节献礼:移动APP创新之美转载 2016-01-25 21:11:59 · 305 阅读 · 0 评论 -
坐在马桶上看算法:只有五行的Floyd最短路算法
坐在马桶上看算法:只有五行的Floyd最短路算法2014-03-26 09:04 ahalei 51CTO博客 我要评论(0) 字号:T | T此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在“Communications of the ACM”上。同年Stephen Warshall(史蒂芬·沃舍尔)也独立发表了这个算法。Robert转载 2016-01-25 20:50:35 · 320 阅读 · 0 评论 -
双关键字快排
双关键字快排其实如果理解了快排的原理,双关键字快排其实是很简单的。因为快排的思想是在待排序序列中选取一个记录,让它左边的都小于等于它,右边的都大于等于它,如此递归。那么双关键字的思想就顺其自然:在待排序序列中选取一个记录,让它左边的第一关键字小于它,或者第一关键字等于它但是第二关键字小于它;右边的第一关键字大于它,或者第一关键字等于它但是第二关键字大于它,如此递归。(读转载 2017-01-11 22:50:47 · 1422 阅读 · 3 评论