算法
wangshaner1
这个作者很懒,什么都没留下…
展开
-
Coreseek算法分析(转)
Coreseek算法分析本文对coreseek代码中涉及到的一部分算法进行说明,以便在阅读代码的时候,能更容易理解相关的代码。本文所整理的只是其中的部分算法,后面将在逐渐深入理解的基础上,进一步添加。一.Soundex 算法1. 算法原理Soundex是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出转载 2013-08-22 10:27:56 · 1473 阅读 · 0 评论 -
面试题:分词统计
题目:给定一个目录,统计该目录及其子目录下所有文件内容中的词频,并输出最多的词频。假设所有的文件都是txt格式,且所有的内容都是英文。分析:1、可以用Dictionary来存储每个词的出现次数2、时间复杂度至少为O(n)似乎无法再进行优化了。那么我们通过多线程来并行处理。C#多线程非常方便。代码如下:using System;using System.Collecti原创 2015-11-25 14:25:53 · 705 阅读 · 0 评论 -
用两个栈实现队列的功能
用两个栈实现队列的功能思路如下:(1)将设有两个空栈A,B;A负责入队,B负责出队。(2)入队时,将元素压入栈A(3)出队时,若B栈为空,将A中的元素全部出栈,并压入B中,然后B的栈顶元素出栈。若B栈不为空,直接将B的栈顶元素出栈。转载请注明:康瑞的部落 » 用两个栈实现队列的功能原创 2015-05-31 12:34:03 · 757 阅读 · 0 评论 -
约瑟夫环
西方有个故事:相传著名历史学家Josephus(约瑟夫)经历了这么一段经历,在罗马人占领乔塔帕特后,40个犹太人和Josephus躲在一个山洞中。40个犹太人决定宁死也不被敌人抓到,于是决定集体自杀。大家经过讨论,决定了一个自杀方式,41个人围成一个圆圈,由第1个人开始报数,每报数到3的人就必须自杀,然后再由下一个人重新开始报数,知道所有人都自杀身亡为止。 然而Josephus并原创 2014-12-18 09:26:00 · 1568 阅读 · 0 评论 -
智叟分牛
很小的时候就看到了这么一个故事。 相传古印度有一位老人,临终前留下遗嘱,把所养的19头牛分给3个儿子。大儿子分得二分之一,老二分得四分之一,小儿子分得五分之一。按印度教规,牛被视为神灵,不能被宰杀,而父亲的条件须无条件遵守。按老父亲的遗嘱,大儿子分得的牛数为:19/2=9.5,二儿子分得:19/4=4.75头,小儿子分得19/5=3.8头牛。老人死后,三位儿子一筹莫展。[1]原创 2014-12-18 10:43:58 · 2656 阅读 · 2 评论 -
单源最短路径(dijkstra算法)php实现
做一个医学项目,其中在病例评分时会用到单源最短路径的算法。单源最短路径的dijkstra算法的思路如下:如果存在一条从i到j的最短路径(Vi.....Vk,Vj),Vk是Vj前面的一顶点。那么(Vi...Vk)也必定是从i到k的最短路径。Dijkstra是以最短路径长度递增,逐次生成最短路径的算法。例如:对于源顶点V0,首先选择其直接相邻的顶点中长度最短的顶点Vi,那么当前已知可得从V0到达V原创 2014-05-10 12:19:51 · 3528 阅读 · 0 评论 -
诱导子图(induced subgraph)
什么是诱导子图?最近看论文一直都在纠结这个问题。在网上找到一个比较形式化的定义:Let G=(V(G),E(G)) be a graph.Let V′⊆V be a subset of vertices of G.The subgraph of G induced by V′ is the subgraph G′=(V′(G′),E′(G′)) of原创 2013-11-21 11:09:50 · 9773 阅读 · 2 评论 -
海量文档查同或聚类问题 -- Locality Sensitive Hash 算法 (转)
考虑一下这个场景 , 使用网络爬虫高速爬取大量的网页内容 , 如果想把这些网页进行实时聚类 , 并从中提取每个网页聚类的主题 . 我们应该怎么样去做对于普通或常见的聚类算法 , 比如 K-means, 或 Hierarchical 聚类 , 无法适用于这个常见 , 对于这些聚类算法无法进行 incremental 聚类 , 即在聚类开始前必须知道整个数据集 , 而这个场景中的数据集是随着爬转载 2013-10-18 14:23:27 · 1295 阅读 · 0 评论 -
烧香问题
题目:有两根不均匀的香,每根烧完需要1小时。用怎样的方法测出45分钟的时间?解答:注意,题目并没有说这两根香是一模一样的,且两根都是不均匀的,所谓折断的方法是行不通的。具体实现方法如下: 假设两根香为A、B。同时点燃A和B,其中A从两头开始点燃,B只点燃一头。待A烧完后(此时已过30分钟),再点燃B的另一端(此时B还剩30分钟长,两端点燃只需15分钟),待B燃烧完后总共用时刚原创 2013-09-14 12:45:00 · 1613 阅读 · 0 评论 -
一个字符串拼接的算法问题
一、相关定义。 在讨论算法之前,为了便于理解,先给出如下定义: 1、序列:两端非空字符的字符串称为序列S。 2、元序列:无空字符的序列称为元序列M。 3、子元序列:序列S中的空格将序列分割成若干个元序列,每个元序列称为序列S的子元序列。假设S有n个子元序列,则S可表示为:M1_M2_..._Mn。 4、序列长原创 2013-09-05 01:12:27 · 3038 阅读 · 0 评论 -
判断点是否在多边形区域里面
英语原文:https://www.ecse.rpi.edu/~wrf/Research/Short_Notes/pnpoly.html基本思想是,以该点向任意方向(这里是x轴正向)作射线,若与多边形的交点个数为偶数,则在多边形之外,否则在多边形之内。这是作者给出的源代码:int pnpoly(int nvert, float *vertx, floa原创 2016-08-09 15:48:17 · 936 阅读 · 0 评论