LinkNemo

  • 大飞

    Python 二分查找算法

    """递归二分查找算法将排序好的数组(比如从小到大)或队列一分二为,选取中间值比较如果要查找的数值比中间值大,说明要查找的数值在前半部分,相反在后半部分,继续将前半部分(或后半部分)一分为二,如此循环,直到找出中间值为索要寻找的数值"""numberArray=[1,3,5,7,9,11,13]defbinary_search(array,search_data,start_index,end_index):#python整数相除如果有小数点会返回浮点型,这个跟Java不同mid_index=int((start_index+end_index)/2)#如果查找的数据不存在返回-1ifsear......
    2018/09/21 12:48:43发表 55赏阅 0点评
  • Nemo

    Java实现TFIDF算法

    算法介绍最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理。关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013/03/tf-idf.html。计算公式比较简单,如下:预处理由于需要处理的候选词大约后3w+,并且语料文档数有1w+,直接挨个文本遍历的话很耗时,每个词处理时间都要一分钟以上。为了缩短时间,首先进行分词,一个词输出为一行方便统计,分词工具选择的是HanLp。然后,将一个领域的文档合并到一个文件中,并用“$$$”标识符分割,方便记录文档数。下面是选择的领域语料(PATH目录下):代码实现package......
    2018/08/19 15:05:39发表 164赏阅 0点评
  • 随遇而安

    算法余晖

    原文出处:MRRiddler本篇主要涉及到图论的基本算法,不包含有关最大流的内容。图论的大部分算法都是由性质或推论得出来的,想朴素想出来确实不容易。二分图(Is-Bipartite)一个图的所有顶点可以划分成两个子集,使所有的边的入度和出度顶点分别在这两个子集中。这个问题可以转换为上篇提到过的图的着色问题,只要看图是否能着2个颜色就行了。当然,可以回溯解决这个问题,不过对于着2个颜色可以BFS解决。同样,一维数组colors表示节点已着的颜色。伪代码:IS-BIPARTITE(g,colors)letqueuebenewQueuecolors[0]=1queue.push(0)whileque......
    2018/02/28 19:23:41发表 179赏阅 0点评
  • 大飞

    python基础算法---快速排序

    快速排序(英语:Quicksort),又称划分交换排序(partition-exchangesort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。递归地(recursive)把小于基准值......
    2018/02/06 22:55:33发表 156赏阅 0点评
  • 大飞

    python基础算法---插入排序

    #插入排序(英语:InsertionSort)是一种简单直观的排序算法。#它的工作原理是通过构建有序序列,对于未排序数据,#在已排序序列中从后向前扫描,找到相应位置并插入。#插入排序在实现上,在从后向前扫描过程中,#需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。个人理解,从头到尾,拿第n个元素跟第n-1个元素对比,如果第n个大于(或小于)第n-1个元素,则需要进行数据交换,外部循环需要执行n-1次,内部循环也需要执行n次,如果列表越长,越到后面执行效率越低。mublist=[22,89,78,66,15,29,87,55,43]definsertion_sort(list):#从第......
    2018/02/03 15:22:10发表 187赏阅 0点评
  • 大飞

    python基础算法---选择排序

    #选择排序(Selectionsort)是一种简单直观的排序算法。#它的工作原理如下。首先在未排序序列中找到最小(大)元素,#存放到排序序列的起始位置,然后,再从剩余未排序元素中继#续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,#直到所有元素均排序完毕。mublist=[22,89,78,66,15,29,87,55,43]defselection_sort(list):#执行n-1次n=len(list)foriinrange(n-1,0,-1):#定义一个变量记录最大数值的索引max_index=0#遍历找出最大数值的索引如果是最大值则交换下标forjinrange(i):if......
    2018/02/03 10:54:49发表 169赏阅 0点评
  • 大飞

    Python基础算法---冒泡排序

    #冒泡排序算法的运作如下:##比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。#对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。#针对所有的元素重复以上的步骤,除了最后一个,总共需要重复n-1次。#持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡算法需要执行n-1次排序,时间复杂度O(n^2),以下图代表一次交换结果:#算法importtime###冒泡排序算法##冒泡排序算法的运作如下:##比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。#对每一对相邻元素作同样的工作,从开始第一对到结尾的最......
    2018/02/03 10:11:01发表 199赏阅 0点评
  • 随遇而安

    如何有效地写算法题(转载)

    原文出处:侯振宇这篇文章最早发在我团队的文档中。我的团队鼓励每个同学都在业余时间多做算法题,特别是新人。个人认为在编程能力的提升上比做sideproject更有用,对职业发展也是如此。当然出于兴趣做的sideproject另当别论。转到这里,希望对各位读者有用。如何有效地写算法题目的持续做算法题的目的仍然是自身能力提升。可以继续细化成三点:保持思维敏捷。非常重要,状态好才能保持对编程的热情。对基础的数据结构、查找和排序保持熟练。能解决日常开发中的性能相关问题。积累对问题域的探索。只有对问题域有足够的探索,才可能举一反三,迸发灵感。方法为了更有效地实现上面的目标。推荐用下面的方式来做题:严格使用......
    2018/01/16 10:28:13发表 119赏阅 0点评
  • Nemo

    二叉树典型:递归打印某个文件夹下的所有文件以及文件夹

    二叉树的以前还在学校的时候开始接触的了,不过一直做的工作都跟数据结构/算法没多大的关系,所以一直没能应用。最近在研究一些索引原理方面的内容,其中接触到不少数据结构的内容。这里先贴一下这个二叉树搜索的实现:/***CreatedbyNemoon2018/1/11.*/publicclassBinaryTreeTest{privateStringbasePath="E:/";@Testpublicvoidsearch(){Filefile=newFile(basePath);if(!file.exists()){Assert.fail("找不到指定的目录");}//开始执行搜索doSearch(f......
    2018/01/11 17:32:15发表 177赏阅 0点评
  • Nemo

    MySQL索引背后的数据结构及算法原理【转载】

    最近在研究索引的算法以及数据结构一类的东西。看完这篇文章后,收获颇多。另外推荐下CodingLabs这个博客,在看了这篇文章后,我陆陆续续浏览了上面的一些其他文章,干货不少,而且作者本身也非常牛逼~原文地址:http://blog.codinglabs.org/articles/theory-of-mysql-index.html摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTr......
    2018/01/11 14:34:24发表 245赏阅 0点评
  • 随遇而安

    一个巧妙的负载均衡算法 :翘动你的大脑(转载)

    原文出处:等你归去来现在的负载均衡技术,可以说是满大街都是,但是我们基本都停留在了使用的阶段上,并没有真正深入去了解其核心。如果真的出现了问题,可能就很难知道是什么原因导致了,只能去google,百度了。因此,了解一些核心的东西,还是不错的。负载均衡大概流程就是,随时收集各服务器信息或者各服务器主动上报信息,由配置主心进行保存,计算出权重,然后根据相应算法进行服务机器选择。(当然了,这不是本文的重点,我也说得不一定对)我要展示的是,一个根据权重进行机器选择的一个巧妙算法,如下:12345678910111213141516171819202122232425262728intchooseOne......
    2018/01/09 09:51:47发表 126赏阅 0点评
  • 随遇而安

    非对称加密技术- RSA算法数学原理分析

    非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。但是对于其原理大部分同学应该都是一知半解,今天就来分析下经典的非对称加密算法-RSA算法。通过本文的分析,可以更好的理解非对称加密原理,可以让我们更好的使用非对称加密技术。题外话:并博客一直有打算写一系列文章通俗的密码学,昨天给站点上https,因其中使用了RSA算法,就查了一下,发现现在网上介绍RSA算法的文章都写的太难理解了,反正也准备写密码学,就先写RSA算法吧,下面开始正文。RSA算法原理RSA算法的基于这样的数学事实......
    2017/11/16 11:16:20发表 159赏阅 0点评
  • Nemo

    安卓/JAVA服务端RSA加解密工具

    Ubuntu下准备证书相关的文件:#创建私钥opensslgenrsa-outprivate_key.pem1024#创建证书请求(按照提示输入信息)opensslreq-new-outcert.csr-keyprivate_key.pem#自签署根证书opensslx509-req-incert.csr-outpublic_key.der-outformder-signkeyprivate_key.pem-days3650#用java代码要从这个文件中得到想要的priavtekey可以先用命令(就被这东西卡住了)opensslpkcs8-topk8-informPEM-outformDER-......
    2017/04/25 19:15:35发表 448赏阅 0点评

最新点击

热门人物

热门标签

回到顶部