标签: Algorithm


  1. 网易2017春招笔试真题编程题集合题解

    前言想想已经有一年多没有接触算法题了,忙活了一年多没什么用的东西,才陡然发现自己竟然就要毕业了,然而审视了下自己的水平估计还达不到大一的程度,甚是惊恐。于是下定决心开始刷一点题,打好基本功。正好有同学在做网易笔试题的时候来向我问问题,我看了看有12道,好像也不多,于是就顺便刷了刷。本以为会是一帆风顺的,可是事实是,我果然还是太菜了。。。 双核处理题目一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理…

    Algorithm, C/C++, MathJax阅读全文

  2. 面向最小哈希签名的LSH

    LSH我们知道最小哈希签名能够把一篇较大的文档压缩成一个较短的签名并且不影响文档间的Jaccard相似度。很多情况下,我们用最小哈希签名的目的就是为了方便的对文档进行存储,并且对于给定的文档,能在大量的文档中快速的查找相似的文章。现在我们能做到快速的对两篇文章进行相似度比较,但是当总的文档数目比较大的时候,比较所有文档的最小哈希签名仍然是一个非常耗时耗力的事。而我们知道,对于给定的文档而言,文档库中的绝大多数文档其实都没有比较的意义,如果能有一个方法能过滤掉不需要比较的大量文档,那么显然就能加快…

    BigData, MathJax, Algorithm, LSH阅读全文

  3. 最小哈希签名(MinHash)简述

    最小哈希签名(minhashing signature)解决的问题是,如何用一个哈希方法来对一个集合(集合大小为n)中的子集进行保留相似度的映射(使他在内存中占用的字节数尽可能的少)。 其实哈希本身并不算难,难的是怎么保留两个子集的相似度的信息。所谓保留相似度,就是说我们能十分直观的从两个子集的哈希结果中看出他们的相似度。当然,朴素的办法就用是一个长度为n的二进制数的每个位来分别对应集合中的每个元素。不过当n比较大而待hash的集合的数目比较小的时候,这种方法的效率就太低了。这时候最常用的方法就…

    BigData, Algorithm, MathJax阅读全文

  4. 文档分割的shingling算法

    shingling算法是最常见的文档分割算法,说白了就是将一个文档分解成由短字符构成的字符串集合。分割后的文档就可以通过Jaccard相似度等简单的度量标准进行相似度检测了。 k-shingling对于任意一篇文档,我们把他当成一个字符串,那么他的k-shingling集合就被定义为文档中所有长度为k的子字符串的集合。比如字符串“abcdabd”,他的2-shingling集合就是{ab,bc,cd,da,bd}。 当然,所有类型的子字符串只会在集合中出现一次。不过实际的文档中可能会有连续的空格…

    Algorithm, BigData阅读全文