推荐算法基础--相似度计算方法汇总

2017年09月04日15:21:57 Yoangh 阅读数25186更多分类专栏: 推荐算法 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/y990041769/article/details/77837915推荐系统中相似度计算可以说是基础中的基础了,因为基本所有的推荐算法都是在计算相似度,用户相似度或者物品相似度,这里罗列一下各种相似度计算方法和适用点余弦相似度  similarity=cos(θ)=A⋅B∥A∥∥B∥=∑i=1nAi×Bi∑i=1n(Ai)2−−−−−−−√×∑i=1n(Bi)2−−−−−−−√similarity=co...

程序员那些必须掌握的排序算法

2019年08月17日16:03:39 #Temptation 阅读数38529 文章标签: 排序算法 更多分类专栏: 算法 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_42453117/article/details/99680831现在的IT行业并不像以前那么好混了,从业人员过多,导致初级程序员过剩,这也间接导致了公司的招聘门槛越来越高,要求程序员掌握的知识也越来越多。算法也是一个争论了很久的话题,程序员到底该不该掌握算法?不同的人有不同的答案,而事实上,很多公司都对算法有一定的要求,有些公司直接在面试的时候便会要求面试者手写算法题。这就对程序员的技术要求产生了很大的考验,所以面对如今的大环境,我们必须掌握算法,才能在今后的工作中占据一席之地。那么接下来,我就简单介绍一下几个排序算法,希望对你们有所帮助。1.冒泡排序冒泡排序(BubbleSort),是一种较简单的排序算法。它重复...

机器学习算法GBDT的面试要点总结-上篇

 1.简介    gbdt全称梯度提升决策树,在传统机器学习算法里面是对真实分布拟合的最好的几种算法之一,在前几年深度学习还没有大行其道之前,gbdt在各种竞赛是大放异彩。原因大概有几个,一是效果确实挺不错。二是即可以用于分类也可以用于回归。三是可以筛选特征。这三点实在是太吸引人了,导致在面试的时候大家也非常喜欢问这个算法。 gbdt的面试考核点,大致有下面几个:gbdt的算法的流程?gbdt如何选择特征?gbdt如何构建特征?gbdt如何用于分类?gbdt通过什么方式减少误差?gbdt的效果相比于传统的LR,SVM效果为什么好一些?gbdt如何加速训练?gbdt的参数有哪些,如何调参?gbdt实战当中遇到的一些问题?gbdt的优缺点?2.正式介绍   首先gbdt是通过采用加法模型(即基函数的线性组合),以及不断减小训练过程产生的残差来达到将数据分类或者回归的算法。 gbdt的训练过程     我们通过一张图片,图片来源来说明gbdt的...

一致性hash算法及java实现

2018年03月28日14:11:38 青鱼入云 阅读数2372更多分类专栏: java 算法 算法 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/u011305680/article/details/79721030一致性hash算法是分布式中一个常用且好用的分片算法、或者数据库分库分表算法。现在的互联网服务架构中,为避免单点故障、提升处理效率、横向扩展等原因,分布式系统已经成为了居家旅行必备的部署模式,所以也产出了几种数据分片的方法: 1.取模,2.划段,3.一致性hash 前两种有很大的一个问题就是需要固定的节点数,即节点数不能变,不能某一个节点挂了或者实时增加一个节点,变了分片规则就需要改变,需要迁移的数据也多。 那么一致性hash是怎么解决这个问题的呢? 一致性hash:对节点和数据,都做一次hash运算,然后比较节点和数据的hash值,数据值和节点最...

一致性算法—Paxos、Raft、ZAB

2019年04月21日20:35:09 bulingma 阅读数64更多分类专栏: 分布式概念 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/bulingma/article/details/894388511、分布式系统对faulttolerence的一般解决方案是statemachinereplication(状态机复制)。2、分布式一致性算法的一种更准确的说法应该是:statemachinereplication的共识(consensus)算法。3、pasox其实是一个共识算法。系统的最终一致性,不仅需要达成共识,还会取决于client的行为。4、分布式系统中有多个节点就会存在节点间通信的问题,存在着两种节点通讯模型:共享内存(Sharedmemory)、消息传递(Messagespassing),以下谈到的算法都是基于消息传递的通讯模型的。它的假设前提是,在分布式系统中进程之间的通信会出现丢失、延迟、重复等现象,...

LinkedList实现基于LRU算法的缓存

 2015年08月07日18:18:45 秦江波 阅读数2068 文章标签: java算法linkedlist缓存LRU更多分类专栏: Java 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/u011763190/article/details/47343153学过操作系统的人都知道LRU页面切换算法,其实这个算法不仅仅只是能在页面切换中应用到,在缓存中也有很实际的应用。最典型的实现方式是采用LinkedHashMap来实现这个缓存,大家可以在Java源码里面看到这个类的作者关于这个的描述,不过全是英文,但是却明确提到过。下面废话不多说,直接展示我自己关于这个算法实现的代码吧,亲测通过:核心算法代码: packagehk.inso.www.cache;importjava.util.Hashtable;importjava.util.LinkedList;/***Createdby...

LVS负载均衡(LVS简介、三种工作模式、十种调度算法

2018年06月02日00:54:51 chenhuyang 阅读数51895 版权声明:本文为博主原创文章,遵循 CC4.0BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_40470303/article/details/80541639一、LVS简介    LVS(LinuxVirtualServer)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,...

图解排序算法(二)之希尔排序

   希尔排序是希尔(DonaldShell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。  希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。  简单插入排序很循规蹈矩,不管数组分布是怎么样的,依然一步一步的对元素进行比较,移动,插入,比如[5,4,3,2,1,0]这种倒序序列,数组末端的0要回到首位置很是费劲,比较和移动元素均需n-1次。而希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量为1。希尔排序通过这种策略使得整个数组在初始阶段达到从宏观上看基本有序,小的基本在前,大的基本在后。然后缩小增量,到增量为1时,其实多数情况下只需微调即可,不会涉及过多的数据移动。  我们来看下希尔...
代码星球 代码星球·2020-04-03

排序算法

 0、算法概述0.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 0.2算法复杂度0.3相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面。时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(BubbleSort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 1.1算法描...
代码星球 代码星球·2020-04-03

十大经典排序算法(动图演示)

 0、算法概述0.1算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2算法复杂度0.3相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面。时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规律。空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。 1、冒泡排序(BubbleSort)冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 ...

秋招算法岗位的常见问题总结(不断更新中)

置顶 2018年07月13日21:23:36 阅读数:68 标签: 秋招实习算法工程师面试题笔试面经 更多个人分类: 基础常识秋招面试题 版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/zichen_ziqi/article/details/81037721                               【备战秋招】史上最全2019届秋招备战攻略一、算法岗位中,值得阅读的面经(牛客网):算法岗位汇总面经(1) 从春招到秋招,算法工程师养成记(阿里+腾讯+其他)(2) 潜水党回馈牛友,算法工程师2017年学习,实习,秋招总结(3)&n...

2018校园招聘笔经面经合集:算法,机器学习,大数据方向

2018校园招聘笔经面经合集:算法,机器学习,大数据方向  2019秋招即将开始,牛妹帮助大家整理了一些算法,机器学习,大数据方向的面经,希望对求职的同学以及有志于从事算法,机器学习,大数据方向工作的同学有所帮助。菜鸟实习面试题分享_笔经面经_牛客网快手2018春季校园招聘笔试试卷--算法A试卷编程题题解_笔经面经_牛客网face++旷视面经_笔经面经_牛客网携程大数据分析一面挂_笔经面经_牛客网Face++算法实习面试经过_笔经面经_牛客网阿里新零售算法一面二面面经明天三面攒人品拼多多算法面经_笔经面经_牛客网网易互娱数据挖掘一面面经_笔经面经_牛客网微盟算法工程师岗_笔经面经_牛客网【实习】华为南研所计算机视觉岗_笔经面经_牛客网西安应用研究面经,写出来攒人品_笔经面经_牛客网​www.nowcoder.comFace++算法岗一面挂经_笔经面经_牛客网美团点评机器学习/数据挖掘工程师面经一道阿里机器学习二面题_笔经面经_牛客网北京腾讯二面挂的语无伦次_笔经面经_牛客网华为春招实习记录_笔经面经_牛客网阿里巴巴算法实习(四轮技术面+一轮HR面)已拿到offer_...

补登卡(贪心算法

小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序。100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了。于是小Ho软磨硬泡、强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡"。每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天。小Ho想知道通过利用这M张补提交卡,可以使自己的"最长连续提交天数"最多变成多少天。Input第一行是一个整数T(1<=T<=10),代表测试数据的组数。每个测试数据第一行是2个整数N和M(0<=N,M<=100)。第二行包含N个整数a1,a2,...aN(1<=a1<a2<...<aN<=100),表示第a1,a2,... aN天小Ho没有提交程序。Output对于每组数据,输出通过使用补提交卡小Ho的最长连续提交天数最多变成多少。SampleInput35134778283845210305556905101030555690SampleOutput7659100我的思路:补登卡可以相应的减去一定的天数,除...
代码星球 代码星球·2020-04-03

Manacher-马拉车算法

Manacher马拉车算法就是求解最长回文串并且将时间复杂度降到了O(n),它的原理就是将原始字符串进行了处理,在每一个字符的左右两边都加上特殊字符,让字符串变成一个奇回文然后通过数组储存标记,详细看这篇https://www.jianshu.com/p/392172762e55回文自动机回文树,也叫回文自动机类似AC自动机的一种回文串匹配自动机,也就是一棵字符树。同样类似AC自动机的是,每一个节点都有一个fail指针,fail指针指向的点表示当前串后缀中的最长回文串。  Now,youaregivenastringS.WewanttoknowhowmanydistinctsubstringofSwhichispalindrome.InputThefirstlineoftheinputcontainsasingleintegerT(T<=20),whichindicatesnumberoftestcases.EachtestcaseconsistsofastringS,whoselengthislessthan100000andonlycontainslowe...

php算法,冒泡排序

冒泡排序/****从小到大排列*逻辑分析假设数组$arr=[a,b,c,d];*总数=4;*比较对象第几个元素比较次数*a13*b22*c31**/functionele_sort($arr){$length=count($arr);if($length<2){return$arr;}for($i=0;$i<$length;$i++){for($j=$i+1;$j<$length;$j++){if($arr[$i]>$arr[$j]){$tmp=$arr[$j];$arr[$j]=$arr[$i];$arr[$i]=$tmp;}}}return$arr;}$arr1=[12,42,53,21,76865,86,43,1];var_dump(ele_sort($arr1)); functionbubble_sort($array){$count=count($array);if($count<=0)returnfalse;for($i=0;$i<$count;$i++){for($j=$count-1;$j>$i;$j--){if($a...
代码星球 代码星球·2020-04-02
首页上一页...105106107108109...下一页尾页