算法
zdy0_2004
这个作者很懒,什么都没留下…
展开
-
判断点在多边形内算法的C++实现
https://www.cnblogs.com/charlee44/p/10704156.html目录1. 算法思路 2. 具体实现 3. 改进空间1. 算法思路判断平面内点是否在多边形内有多种算法,其中射线法是其中比较好理解的一种,而且能够支持凹多边形的情况。该算法的思路很简单,就是从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果...转载 2019-04-15 00:39:35 · 2488 阅读 · 0 评论 -
求两个字符串的编辑距离
http://www.cnblogs.com/xiuyangleiasp/p/5023717.html 很多程序都需要利用到字符串的比较,而字符串的编辑距离在字符串相似性比较中,应用广泛。下面分享字符串编辑距离的求解。概念 字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。是指利用字符操作,把字转载 2015-12-07 20:06:47 · 582 阅读 · 0 评论 -
deflate树与deflate编码
http://www.cnblogs.com/zengzy/p/5156130.html关于deflate树,能搜到的资料非常少,这个概念来自gzip的压缩算法,是由huffman树转变过来的。这里简单记录下deflate树的生成过程以及deflate编码。假设以5 8 9 10 14 15,建立一颗huffman树,可以是这个样子的:转载 2016-01-25 23:57:43 · 1367 阅读 · 0 评论 -
最长回文子串
http://www.cnblogs.com/xiuyangleiasp/p/5070991.html问题描述 给定一个字符串,求它的最长回文子串的长度。 回文串就是正着读和反着读都一样的字符串。分析与求解解法一 蛮力法 最容易想到的就是蛮力求解,即求出该字符串的每一个子串,再判断子串是否是回文串,找到最长的那个。其中求出每个子串的时间复杂转载 2015-12-23 21:55:29 · 609 阅读 · 1 评论 -
Machine Learning:PageRank算法
http://blog.csdn.net/Leonis_v/article/details/505310321. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 在谷歌主导互联网搜索之前, 多数搜索引擎采用的排序方法, 是以被搜索词语在网页中的出现次数来决定排序——出现次数越多的网页排在越前面转载 2016-01-19 14:04:59 · 510 阅读 · 0 评论 -
多个数的最大公约数
http://www.cnblogs.com/qingergege/p/4992990.html---恢复内容开始---最近在看一本算法的书。讲的都是一些基本的问题,并没有涉及很复杂的算法,或者说这本书更看重技巧。其中开篇就讲了最大公约数的算法,觉得有可取之处,和大家分享一下。提到最大公约数我们最先想到的一定是辗转相除法。没错,永远不要蔑转载 2015-11-24 23:25:43 · 3716 阅读 · 0 评论 -
GeoHash算法详解
http://blog.csdn.net/erlib/article/details/50209955思想:通过某种方法将二维的点数据转换成一维的数据,就可以使用B树索引了。一、感性认识GeoHash首先来点感性认识,http://openlocation.org/geohash/geohash-js/ 提供了在地图上显示geohash编码的功能。转载 2015-12-11 15:10:02 · 889 阅读 · 0 评论 -
动态规划算法——矩阵连乘问题
动态规划算法——矩阵连乘问题http://www.cnblogs.com/Cgsyuan/p/4867474.html问题描述:给定n个矩阵{A1A2…An},其中Ai和Ai+1是可乘的,考察这n个矩阵的连乘积A1A2…An。由于矩阵的乘法满足结合律,故计算矩阵的连乘积有许多不同的计算次序,而不同的计算次序,所需要计算的连乘次数也是不同的,求解连乘次数最少的矩阵连乘最优次序。转载 2015-10-11 01:37:51 · 7167 阅读 · 1 评论 -
Size Balanced Tree
Size Balanced Treehttp://www.nocow.cn/index.php/Size_Balanced_TreeSize Balanced Tree(SBT)是一种平衡二叉查找树。它的论文由中国广东中山纪念中学的陈启峰于2006年底完成,并在Winter Camp 2007中发表。由于SBT的拼写很容易找到中文谐音,它常被中国的OIer们戏称为“转载 2015-10-22 13:18:43 · 585 阅读 · 0 评论 -
深入浅出排序算法的多语言实现
深入浅出排序算法的多语言实现转自: http://www.cnblogs.com/baiboy/p/sort.html摘要:十一假期于实验室无趣,逐研究起数据结构之排序。起初觉得就那么几种排序,两三天就搞定了,后来随着研究的深入,发觉里面有不少东西。本文介绍常用的排序算法,主要从以下几个方面:算法的介绍、算法思想、算法步骤、算法优缺点、算法实现、运行结果、算法优化等。最后对本文转载 2015-10-08 23:54:32 · 1042 阅读 · 0 评论 -
寻找第K大元素的八大算法、源码及拓展
寻找第K大元素的八大算法、源码及拓展http://www.cnblogs.com/bethunebtj/p/4861378.html一、问题描述 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。第K大问题可以是现实问题,譬如竞价排名中的第K个排名,或者多个出价者中的第K大价格等等。转载 2015-10-08 21:42:03 · 1345 阅读 · 0 评论 -
Size Balanced Tree(SBT) 类模板C++实现(持续更新)
Size Balanced Tree(SBT) 类模板C++实现(持续更新)http://blog.csdn.net/sprintfwater/article/details/8316268 Size Balanced Tree是OI神犇陈启峰发明的,据说是目前最高效的二叉查找树,搞了好长时间终于弄出来了~这个版本的SBT本来是打算用来实现STL的set转载 2015-10-22 13:14:07 · 647 阅读 · 0 评论 -
Splay Tree(伸展树)
Splay Tree(伸展树)http://blog.csdn.net/niuox/article/details/8018280二叉查找树(Binary Search Tree)能够支持多种动态集合操作。因此,在信息学竞赛中,二叉排序树起着非常重要的作用,它可以被用来表示有序集合、建立索引或优先队列等。作用于二叉查找树上的基本操作的时间是与树的高度成正比的转载 2015-10-22 13:33:15 · 376 阅读 · 0 评论 -
美国国防部机密文件销毁算法
美国国防部机密文件销毁算法 当我们在系统里“删除”了一个文件时,并不意味着这个文件就一定从磁盘上清除了,很多优秀的文件恢复软件都可以恢复被删除的文件,这在一定程度上就带来了隐私泄露的隐患。好在现在很多软件,比如360、电脑管家等等软件都集成了文件粉碎的实用功能。今天介绍一种以前被用于美国国防部的机密文件销毁算法,并附上实现的代码(C)。 算法介绍: 美国国防部转载 2015-10-20 20:47:01 · 1774 阅读 · 0 评论 -
Cuckoo Filter:设计与实现
Cuckoo Filter:设计与实现http://coolshell.cn/articles/17225.html对于海量数据处理业务,我们通常需要一个索引数据结构,用来帮助查询,快速判断数据记录是否存在,这种数据结构通常又叫过滤器(filter)。考虑这样一个场景,上网的时候需要在浏览器上输入URL,这时浏览器需要去判断这是否一个恶意的网站,它将对本地缓存的成千上万转载 2015-09-29 14:42:51 · 2132 阅读 · 0 评论 -
B树、B-树、B+树、B*树
B树、B-树、B+树、B*树http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.htmlB树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键转载 2015-09-08 21:27:02 · 363 阅读 · 0 评论 -
字符串匹配的KMP算法
字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很费劲。直到读到Jake Boxer的文章,才真正理解这种算法。下面,试图写一篇比较好懂的KMP算法解释。转载 2015-09-01 16:28:14 · 399 阅读 · 0 评论 -
求连续子数组的最大和问题
http://www.cnblogs.com/allzy/p/5162815.html前言 这几天一直在读Weiss的数据结构书(Data Structures and Algorithm Analysis in C:Second Edition),其中第二章是关于简单的算法分析(引入大O记号等工具),以“求连续子数组的最大和问题”为例,进行了一些说明和阐释。最大转载 2016-01-27 17:44:32 · 740 阅读 · 0 评论 -
一致性Hash算法
http://www.cnblogs.com/xrq730/p/5186728.html关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法和一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性转载 2016-02-13 20:27:03 · 687 阅读 · 0 评论 -
数学美之判断线段相交的最简方法
https://segmentfault.com/a/1190000004457595?ref=myread解析几何的巅峰 是 向量那无关过程的狂妄与简洁映射着大自然无与伦比的美引子如何判断两条直线是否相交?这很容易。平面直线,无非就是两种关系:相交 或 平行。因此,只需判断它们是否平行即可。而直线平行,等价于它们的斜率相等,只需分别计算转载 2016-02-23 18:19:57 · 5572 阅读 · 0 评论 -
《剑指offer》全部题目-含Java实现
转自:https://www.cnblogs.com/guoyaohua/p/8955372.html1.二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Fin转载 2018-04-27 00:21:42 · 1078 阅读 · 0 评论 -
随机抽样一致算法(Random sample consensus,RANSAC)
http://www.cnblogs.com/xingshansi/p/6763668.html前言仍然是昨天的问题,别人问到最小二乘、霍夫变换、RANSAC在直线拟合上的区别。昨天梳理了霍夫变换,今天打算抽空梳理一下RANSAC算法,主要包括: 1)RANSAC理论介绍 2)RANSAC应用简介;内容为自己的学习记录,其中很多地方借鉴了别人,最后一起给出链转载 2017-04-26 20:00:07 · 3256 阅读 · 0 评论 -
Bandit算法与推荐系统
http://geek.csdn.net/news/detail/195714作者简介:陈开江,天农科技CTO,曾任新浪微博资深算法工程师,考拉FM算法主管,个性化导购App《Wave》和《边逛边聊》联合创始人,多年推荐系统从业经历,在算法、架构、产品方面均有丰富的实践经验。 责编:何永灿,欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn.net 本文为《转载 2017-05-03 21:50:03 · 2851 阅读 · 2 评论 -
Hash 函数概览
http://www.oschina.net/translate/state-of-hash-functions最先进的非加密散列函数在过去几年中得到了快速推广。当我这周搜索的时候,我很高兴的看到新的尖端散列函数已经发布即使上次我进行这个方面的搜索是6个月到1年前的事情了。非加密散列函数将字符串作为输入,通过计算输出一个整数。理想的散列函数的一个特性是输出非常均匀分布在可能的输出域转载 2017-03-06 14:22:38 · 678 阅读 · 0 评论 -
全排列问题及其follow-up
http://www.cnblogs.com/wangxiaobao/p/5947633.html全排列问题是经典的算法题目。实现可以使用库函数(如STL next_permutation), 也可以递归回溯法。同时其follow up又包括:当排列中有重复元素时如何处理;next permutaion的实现原理;查找第K个排列等。本文就这些问题进行讨论。注转载 2016-10-10 23:51:32 · 903 阅读 · 0 评论 -
从B树、B+树、B*树谈到R 树
http://blog.csdn.net/v_JULY_v/article/details/6530142/目录(?)[+]从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Franki转载 2016-10-10 17:44:29 · 609 阅读 · 0 评论 -
快速排序 一次遍历partition的实现
一种partition的实现如下: 1 private int partition(int[] array, int left, int right) { 2 3 int i = left - 1; 4 int j = left; 5 int pivot = array[right]; 6 7 for (; j ) { 8转载 2016-09-10 20:44:01 · 1497 阅读 · 0 评论 -
数学之美:平方根倒数速算法中的神奇数字 0x5f3759df
http://blog.jobbole.com/105295/?ref=myread本文由 伯乐在线 - JLee 翻译,黄利民 校稿英文出处:Christian Plesner Hansen。【伯乐在线导读】:在伯乐小组的这个讨论帖《你见过或写过的最复杂的 C 语言程序是?》中,就提到了「平方根倒数速算法」中的神奇数字 0x5f3759df。Chris转载 2016-09-08 23:40:16 · 16892 阅读 · 1 评论 -
不用算术运算符实现两个数的加法(按位异或)
不用算术运算符实现两个数的加法(按位异或) 对于二进制的加法运算,若不考虑进位,则1+1=0,1+0=1,0+1=1,0+0=0,通过对比异或,不难发现,此方法与异或运算类似。因而排出进位,加法可用异或来实现。然后考虑进位,0+0进位为0,1+0进位为1,0+1进位为0,1+1进位为1,该操作与位运算的&操作相似。 那么加法运算可以这样实现: 1)先不考虑进位,按位计算各位累转载 2015-10-25 21:32:58 · 6740 阅读 · 2 评论 -
浅谈算法和数据结构: 九 平衡查找树之红黑树
http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数转载 2016-06-14 14:57:52 · 443 阅读 · 0 评论 -
整数哈希介绍
为什么要整数哈希http://www.cnblogs.com/napoleon_liu/archive/2010/12/29/1920839.html 很多时候,可以直接用整数作为键,比如QQ号码,手机号码,但这些号码的分布性不是均匀的(比如高位的变化更少,低位变化更多)。 分布均匀指的是每位为0或1的概率都是一样的。理论基础整数哈希的目标 1.转载 2016-06-07 11:45:22 · 1713 阅读 · 0 评论 -
数据结构--树--红黑树
http://www.cnblogs.com/Kobe10/p/5617400.htmlR-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。转载 2016-06-26 10:41:10 · 576 阅读 · 0 评论 -
数独解法小探
http://www.cnblogs.com/kaige/p/sudok_algorithms.html数独的游戏要求在一个9X9的格子内填入1~9的数字,使得每一行,每一列,以及九个3X3的子区域内都没有重复的数字。如何用程序的方法来解这个问题呢? 稍作思索,我写出了第一种解法。从事后查询维基百科1来看,这种方法可以称之为回溯法。思路很简单,依次扫描每一个待填数字的空格:转载 2016-06-26 01:16:15 · 1543 阅读 · 0 评论 -
WebKit性能的基石 ----- Hash 函数介绍
http://blog.csdn.net/onecoolx/article/details/9453359 WebKit 内核的浏览器一直以性能优异而著称。优异的性能来源于底层巧妙的设计与实现。这篇文章简要的介绍一下WebKit性能的基石 ----- Hash函数。Webkit内核源代码中包含一套全新实现的基础模板库 ---- WTF。 WTF提供了基本的容器类 如:Ve转载 2016-06-02 18:22:43 · 943 阅读 · 0 评论 -
查找(一)史上最简单清晰的红黑树讲解
查找(一)http://blog.csdn.net/yang_yulei/article/details/26066409我们使用符号表这个词来描述一张抽象的表格,我们会将信息(值)存储在其中,然后按照指定的键来搜索并获取这些信息。键和值的具体意义取决于不同的应用。符号表中可能会保存很多键和很多信息,因此实现一张高效的符号表也是一项很有挑战性的任务。转载 2016-04-10 12:01:25 · 676 阅读 · 0 评论 -
海量用户积分排名算法探讨
作者 / 魏大刚@weidagang问题某海量用户网站,用户拥有积分,积分可能会在使用过程中随时更新。现在要为该网站设计一种算法,在每次用户登录时显示其当前积分排名。用户最大规模为2亿;积分为非负整数,且小于 100万。PS: 据说这是迅雷的一道面试题,不过问题本身具有很强的真实性,所以本文打算按照真实场景来考虑,而不局限于面试题的理想环境。存储结构转载 2016-02-24 11:12:22 · 1338 阅读 · 0 评论 -
红黑树-想说爱你不容易
红黑树-想说爱你不容易http://www.cnblogs.com/SeaSky0606/p/4753856.html前言: 记得在大一懵懵懂懂的时候就接触了红黑树的算法。但由于当时内功尚浅,无法将其内化,只是觉得它很神奇,是个好算法,设计它的人很牛!现今重拾起这个算法,不得不再次被它的精妙所折服!编写本文,是希望以鄙人的理解将红黑树算法的精髓向博客园的园转载 2015-08-24 20:53:06 · 534 阅读 · 0 评论 -
算法之美 之 小小方差增量算法带来的大大收益
算法之美 之 小小方差增量算法带来的大大收益http://www.cnblogs.com/yoyaprogrammer/p/delta_variance.html一个小小的方差增量算法,使得消除持续增长的上百GB的明细数据成为可能,空间效率和时间效率都可得到无以伦比的提升。下面一码给你重现整个过程,小伙伴们一起激动激动。背景搞推荐就要玩好私人定制转载 2015-07-09 22:29:26 · 1770 阅读 · 0 评论 -
算法学习建议
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15 分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内转载 2014-11-19 17:21:13 · 554 阅读 · 0 评论 -
算法-求二进制数中1的个数
算法-求二进制数中1的个数问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到转载 2014-10-12 22:43:10 · 575 阅读 · 0 评论