
算法
Ellating123
这个作者很懒,什么都没留下…
展开
-
统治世界的十大算法
算法对于我们今天生活十分重要,怎样宣扬也不会夸张。它们在虚拟世界中无处不在,从金融机构到交友网站。但是,相比于其他算法,其中有一些算法更大程度上改变并控制着我们的世界——本文列举了其中十种最为重要的算法。 在正式介绍算法内容之前,让我们来迅速复习一些基本内容。虽然,没有明确的定义,但是计算机科学家将算法描述为一个定义了操作顺序的规则集合。它们是一组顺序指令,用来告诉计算机怎样解决一个问题或者转载 2014-07-03 15:43:02 · 1588 阅读 · 0 评论 -
从B树、B+树、B*树谈到R 树
出处:http://blog.youkuaiyun.com/v_JULY_v 。 第一节、B树、B+树、B*树 1.前言: 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree),红黑树(Red-Black Tree ),B-tree/B+-tree/ B*-tree (B~Tree)。前三者是典型的二叉转载 2016-07-21 15:45:15 · 692 阅读 · 0 评论 -
从2-3-4树谈到Red-Black Tree(红黑树)
译者:July。 出处:http://blog.youkuaiyun.com/v_JULY_v 。 在上一篇文章--从B树、B+树、B*树谈到R 树里已提到2-3-4树,那么本文,咱们就从2-3-4树开始谈起,然后谈至红黑树。因为理解了2-3-4树,红黑树也就没有任何问题了。同时,虽然红黑树在本blog已有过非常详尽的阐述。但个人此后对红黑树又有了不少新的认识,雨打风吹去,已体味转载 2016-07-21 20:07:36 · 4740 阅读 · 1 评论 -
Trie树
出自http://www.cnblogs.com/huangxincheng/archive/2012/11/25/2788268.html 一:概念 下面我们有and,as,at,cn,com这些关键词,那么如何构建trie树呢? 从上面的图中,我们或多或少的可以发现一些好玩的特性。 第一:根节点不包含字符,除根节点外的每一个子节点都包含一个转载 2016-07-29 17:44:56 · 237 阅读 · 0 评论 -
计数排序
出自:http://www.cnblogs.com/hxsyl/p/3214379.html 一.概念引入 有作者把计数排序也称为桶排序(各个桶中元素的排序采用计数排序),得到数组C后直接从前往后遍历,输出数组值次数组下标,为0就不输出(或者存入原数组,不稳定),不过笔者认为这种说法不严谨(一个很明显的问题是输出会是双重for循环,不过也有那个意思,叫鸽巢排序也未尝不可转载 2016-07-27 10:39:09 · 247 阅读 · 0 评论 -
桶排序
在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。 首先出场的是我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同学们的分数按照从高到低排序。小哼的班上只有5个同学转载 2016-07-27 10:32:01 · 269 阅读 · 0 评论 -
浅谈算法和数据结构(4):快速排序
原文出处: 寒江独钓 上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick Sort)。 快速排序是20世纪科技领域的十大算法之一 ,他由C. A. R. Hoare于1960年提出的一种划分交换排序。 快速排序也是一种采用分治法解决问题的一个典型应用。在很多编程语言中,对数组转载 2016-07-11 20:05:45 · 402 阅读 · 0 评论 -
浅谈算法和数据结构(3):合并排序
原文出处: 寒江独钓 合并排序,顾名思义,就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。 合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择排序和插入排序所达不到的。他还是一种稳定性排序,也就是相等的元素在序列中的相对位置转载 2016-07-11 20:04:51 · 372 阅读 · 0 评论 -
浅谈算法和数据结构(2):基本排序算法
原文出处: 寒江独钓 本篇开始学习排序算法。排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序、买火车票会按照出发时间或者时长排序、买东西会按照销量或者好评度排序、查找文件会按照修改时间排序等等。在计算机程序设计中,排序和查找也是最基本的算法,很多其他的算法都是以排序算法为基础,在一般的数据处理或分析中,通常第一步就是进行排序,比如说二分查找,首先要对数据进转载 2016-07-11 20:03:57 · 340 阅读 · 0 评论 -
浅谈算法和数据结构(1):栈和队列
1. 基本概念 概念很简单,栈 (Stack)是一种后进先出(last in first off,LIFO)的数据结构,而队列(Queue)则是一种先进先出 (fisrt in first out,FIFO)的结构,如下图: 2. 实现 现在来看如何实现以上的两个数据结构。在动手之前,Framework Design Guidelines这本书告诉我们,在设计API或转载 2016-07-11 17:28:26 · 479 阅读 · 0 评论 -
贪心法,拟阵和亚模函数(refer)
CLRS 第16章专门讲了贪心算法 (Greedy Algorithm) 的理论基础是拟阵 (matroid) . 具体理论就不重复废话了. 实际上更加贴切的模型叫做 Greedoid. 相关的理论看一下CLRS就好懂了. 注意 CLRS 中间讲到的所谓的带权拟阵, 实际上表明目标函数是线性的 (函数值 F(A) 等于集合A中每个元素权值之和). Edmonds 1970 早在70年代一篇没有摘要转载 2015-07-22 10:54:25 · 919 阅读 · 0 评论 -
C4.5算法详解(至今见过写的最好的算法详解)
C4.5是机器学习算法中的另一个分类决策树算法,它是基于ID3算法进行改进后的一种重要算法,相比于ID3算法,改进有如下几个要点: 用信息增益率来选择属性。ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵(entropy, 熵是一种不纯度度量准则),也就是熵的变化值,而C4.5用的是信息增益率。 在决策树构造过程中进行剪枝,因为某些具有很少元素的结点可转载 2014-11-06 16:24:18 · 1083 阅读 · 0 评论 -
信息增益,信息增益率,Gini
1、熵(Entropy) 理论上来说用于决策树的属性选择函数,为方便计算,往往是定义为其属性的不纯性度量,那么必须满足如下三个条件: 当结点很纯时,其度量值应为0当不纯性最大时(比如所有类都有同样的可能),其度量值应最大度量应该服从多级特性,这样决策树才能分阶段建立起来 measure([2,3,4])=measure([2,7])+79×measure([3,4])转载 2014-11-06 16:16:58 · 670 阅读 · 0 评论 -
关联规则算法Apriori的学习与实现
首先我们来看,什么是规则?规则形如”如果…那么…(If…Then…)”,前者为条件,后者为结果。关联规则挖掘用于寻找给定数据集中项之间的有趣的关联或相关关系。关联规则揭示了数据项间的未知的依赖关系,根据所挖掘的关联关系,可以从一个数据对象的信息来推断另一个数据对象的信息。例如购物篮分析。牛奶 ⇒ 面包 [支持度:3%,置信度:40%] 支持度3%意味3%顾客同时购买牛奶和面包。置信度转载 2014-11-10 10:55:30 · 951 阅读 · 0 评论 -
推荐系统中的常用算法
在推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐。 一、基于内容推荐 基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的转载 2014-07-08 11:20:28 · 1023 阅读 · 0 评论 -
PageRank算法简介及Map-Reduce实现
PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。 一、什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO(^_^)。Page转载 2014-07-04 16:03:20 · 428 阅读 · 0 评论 -
常见算法在实际项目中的应用
近日Emanuele Viola在Stackexchange上提了这样的一个问题,他希望有人能够列举一些目前软件、硬件中正在使用的算法的实际案例来证明算法的重要性,对于大家可能给到的回答,他还提出了几点要求: 使用这些算法的软件或者硬件应该是被广泛应用的;例子需要具体,并给出确切的系统、算法的引用地址;在经典的本科生或者博士的课程中应该教过这些算法或者数据结构; Vijay D的回复获转载 2014-07-03 15:57:00 · 456 阅读 · 0 评论 -
R学习日记——线性回归分析
先来介绍线性回归定义,本人较懒,直接引用百度百科的解释。 在统计学中,线性回归(LinearRegression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,[引文需要转载 2017-07-25 14:18:25 · 1390 阅读 · 0 评论