
算法
文章平均质量分 92
Micrle_007
这个作者很懒,什么都没留下…
展开
-
一致性哈希和redis分布式集群
前言互联网公司中,绝大部分都没有马爸爸系列的公司那样财大气粗,他们即没有强劲的服务器、也没有钱去购买昂贵的海量数据库。那他们是怎么应对大数据量高并发的业务场景的呢?这个和当前的开源技术、海量数据架构都有着不可分割的关系。比如通过mysql、nginx等开源软件,通过架构和低成本的服务器搭建千万级别的用户访问系统。怎么样搭建一个好的系统架构,这个话题我们能聊上个七天七夜。这里我主要结合Redis集群来讲一下一致性Hash的相关问题。Redis集群的使用我们在使用Redis的过程中,为了保证Re转载 2021-04-18 10:53:18 · 229 阅读 · 0 评论 -
不稳定排序算法有哪些
一、不稳定排序算法有哪些1、堆排序2、希尔排序3、快速排序4、选择排序口诀:一堆(堆)希尔(希尔)快(快速)选(选择)二、常见排序算法稳定性分析1、堆排序稳定性分析我们知道堆的结构是节点i的孩子为 2*i 和 2*i+1 节点,大顶堆要求父节点大于等于其 2 个子节点,小顶堆要求父节点小于等于其 2 个子节点。在一个长为 n 的序列,堆排序的过程是从第 n/2 开始和其子节点共 3 个值选择最大(大顶堆)或者最小(小顶堆),这 3 个元素之间的选择当然不...转载 2020-10-03 09:09:56 · 29410 阅读 · 1 评论 -
排序算法
最近在看排序算法,对此做个总结。参考文章:https://www.cnblogs.com/onepixel/articles/7674659.htmlhttps://www.cnblogs.com/guoyaohua/p/8600214.html目录一、算法的分类1、概念2、分类3、比较二、各算法原理及实现1、冒泡排序(Bubble Sort)2、选择排序(Selection Sort)3、插入排序(Insertion Sort)4、希尔排序(Shell Sor转载 2020-10-02 07:50:43 · 165 阅读 · 0 评论 -
hashmap扩容机制 jdk1.7
——原创:转载请注明出处 http://www.cnblogs.com/yanzige/p/8392142.html一、什么时候扩容:网上总结的会有很多,但大多都总结的不够完整或者不够准确。大多数可能值说了满足我下面条件一的情况。扩容必须满足两个条件:1、 存放新值的时候当前已有元素的个数必须大于等于阈值2、 存放新值的时候当前存放数据发生hash碰撞(当前key计算的hash...转载 2019-02-19 08:43:25 · 651 阅读 · 1 评论 -
hashmap原理
原文链接: http://www.iteye.com/topic/539465 Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。 1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在java编程语言中,最基本的结...转载 2019-02-18 20:04:33 · 253 阅读 · 0 评论 -
Dubbo工作原理
Dubbo是一款RPC(Remote Procedure Call)框架,其主要作用是实现远程过程调用,比如在一个公司内有好几个开发部门,A部门想调用B部门的service,由于Dubbo和Spring是无缝衔接的,我们只需要在Spring的配置文件中添加Dubbo配置,就可以调用B部门的服务了,那是怎么调用的呢? 比如B部门给A部门暴露了一个接口可以供B部调用该接口里的服务,那么...原创 2018-11-17 12:13:08 · 1866 阅读 · 0 评论 -
插入排序
插入排序一、基本思想通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。如果输入数组已经是排好原创 2016-08-17 22:02:01 · 632 阅读 · 0 评论 -
arg,argmin和argmax理解
argmax表示寻找具有最大评分的参量 argmax{f(x,y): x属于X}是f(x,y)在X上达到最大值时的x值,这个x值是y的函数,于是就 x(y):=argmax{f(x,y): x属于X}y = f(t) 是一般常見的函式,代表給定一个t值,丟到f函式中会回传一个值給y。y = max f(t) 代表:y 是f(t)函式所有的值中最大的output。原创 2017-02-16 10:38:48 · 4837 阅读 · 0 评论 -
PCA 原理
PCA的数学原理作者 张洋 | 发布于 2013-06-22机器学习 线性代数 PCAPCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的原理。转载 2017-02-21 12:41:30 · 961 阅读 · 0 评论 -
对核函数的理解
核函数和映射没有关系。核函数只是用来计算映射到高维空间之后的内积的一种简便方法。一般英文文献对Kernel有两种提法,一是Kernel Function,二是Kernel Trick。从Trick一词中就可以看出,这只是一种运算技巧而已,不涉及什么高深莫测的东西。具体巧在哪里呢?我们如果想进行原本就线性不可分的数据集进行分割,那么选项一是容忍错误分类,即引入Soft Margin;选项二是原创 2017-02-11 21:51:19 · 2239 阅读 · 0 评论 -
计算点到SVM超平面的距离
最近在看的资料里涉及到计算 点到支持向量机分类超平面的距离 这一点内容,我使用的svm是libsvm。由于是新手,虽然看了一些资料,但中英转换误差等等原因导致经常出现理解错误,因此对libsvm的了解是磕磕绊绊。在摸索libsvm各种返回值的意义和运用它产生的结果文件过程中绕了不少弯。最开始接触这个问题的解答是在libsvm本身的faq中:Q: How do I get the dis原创 2016-12-14 10:47:35 · 7091 阅读 · 3 评论 -
svm 简介
(一)SVM的简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Acc转载 2017-01-13 20:50:38 · 2349 阅读 · 0 评论 -
libsvm 实现多分类原理
SVM作为判别模型(discriminative model)中所使用的典型方法,其产生是为2分类问题设计的svm多分类效果不佳,目前是svm研究的热点之一。libsvm用的是one- versus-one法。简介:.一对一法(one-versus-one,简称OVO SVMs或者pairwise)。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计转载 2016-12-23 13:42:56 · 2627 阅读 · 0 评论 -
SVM入门(十)将SVM用于多类分类
从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。还以文本分类为例,现成的方法有很多,其中一种一劳永逸的方法,就是真的一次性考虑所有样本,并求解一个多目标原创 2016-12-22 15:48:16 · 499 阅读 · 0 评论 -
空间复杂度和时间复杂度
算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频转载 2016-11-22 11:12:14 · 415 阅读 · 0 评论