算法
天雨龙马
好好学习,天天思考!
展开
-
如何轻松愉快地理解条件随机场(CRF)?
理解条件随机场最好的办法就是用一个现实的例子来说明它。但是目前中文的条件随机场文章鲜有这样干的,可能写文章的人都是大牛,不屑于举例子吧。于是乎,我翻译了这篇文章。希望对其他伙伴有所帮助。原文在这里[http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/]想直接看英文的朋友可以直接点进去了。我在翻译...转载 2019-06-04 09:46:24 · 257 阅读 · 0 评论 -
Beam Search(集束搜索/束搜索)
1.简介Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。这样减少了空间消耗,并提高了时间效率,但缺点就是有可能存在潜在的最佳方案被丢弃,因此Beam Search算法是不完全的,一般用于解空间较大的系统中。2.流程Beam Search...转载 2019-04-22 10:01:27 · 1373 阅读 · 0 评论 -
上采样与下采样
通常所说的采样指的是下采样,也就是对信号的抽取。其实,上采样和下采样都是对数字信号进行重采,重采的采样率与原来获得该数字信号(比如从模拟信号采样而来)的采样率比较,大于原信号的称为上采样,小于的则称为下采样。上采样的实质也就是内插或插值。下采样的定义:对于一个样值序列间隔几个样值取样一次,这样得到新序列就是原序列的下采样。下采样就是抽取,是多速率信号处理中的基本内容之一。上采样是下采样的逆...原创 2018-12-15 23:31:05 · 45251 阅读 · 0 评论 -
树的高度与深度(易混点)
树的高度:从所有叶节点开始数高度到根节点,其中的最大值;也就是从结点x向下到某个叶结点最长简单路径中边的条数。树的深度:树根下所有分支结点层数的最大值,递归定义。(一般认为根节点深度为1,有些地方也认为是0,可能会有争议)1.可以看出两个概念定义是相互反向的,就像我们平时数高楼的高度从下往上,数地下室的深度从上往下,这里的树和现实中的树是相反方向的,所以高度和深度计算的方法也相反。2....转载 2018-12-02 21:54:14 · 1938 阅读 · 0 评论 -
算法复杂度分析中的符号(Θ、Ο、ο、Ω、ω)简介
Θ,读音:theta、西塔;既是上界也是下界(tight),等于的意思。Ο,读音:big-oh、欧米可荣(大写);表示上界(tightness unknown),小于等于的意思。ο,读音:small-oh、欧米可荣(小写);表示上界(not tight),小于的意思。Ω,读音:big omega、欧米伽(大写);表示下界(tightness unknown),大于等于的意思。ω,读...转载 2018-10-14 20:30:18 · 6649 阅读 · 0 评论 -
算法运行时间1、logN、N、NlogN 、N^2、N^3、2^n之间的比较
排序算法中,常常要求我们估算出最坏情况运行时间和平均情况/期望运行时间。在估算运行时间时,我们常用到下面一些时间量: 1 大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。 logN 如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的问题分解成一系列更小的问题,每...转载 2018-10-14 20:22:33 · 3340 阅读 · 0 评论 -
在MovieLens数据集上用SVD进行评分预测【修正后】
参考了Yehuda Koren 08年的论文Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model代码如下:# -*- coding: UTF-8 -*-import randomimport mathimport cPickle as pickleclass SVD(): ...转载 2018-03-30 11:30:04 · 3051 阅读 · 1 评论 -
最长公共子序列求解:递归与动态规划方法
在做OJ题目的时候,经常会用到字符串的处理。例如,比较二个字符串相似度。这篇文章介绍一下求两个字符串的最长公共子序列。 一个字符串的子序列,是指从该字符串中去掉任意多个字符后剩下的字符在不改变顺序的情况下组成的新字符串。 最长公共子序列,是指多个字符串可具有的长度最大的公共的子序列。 (1)递归方法求最长公共子序列的长度 1)设有字符串a[0...n],b[0...m]转载 2016-07-24 00:53:22 · 584 阅读 · 0 评论 -
堆排序
1. 堆简单介绍,数据存储及堆上定义的操作2. 堆排序简单实现及算法的时间复杂度3. 代码下载 1. 堆简单介绍,数据存储及堆上的定义的操作二叉堆在本文中使用数组(.net中的List)来存储,它可以完全被看作是一颗二叉树。 除了叶子节点外,其他每层都是满的。二叉堆可以分为最大堆和最小堆。最大堆定义如下: 有定义可知,最大堆中中根元素是最大的。最小堆定义与最大堆转载 2016-07-24 00:52:01 · 225 阅读 · 0 评论 -
堆排序算法伪代码
// 草稿,待完善/////////////////////////////////////////////////////void HeapSort( 数组,元素个数){ BuildHeap( 数组,堆大小); // 大小就是包含的元素个数 for( 堆元素总个数减一 次循环 ) { 将“堆顶”元素同“堆底”转载 2016-07-24 00:49:56 · 5589 阅读 · 0 评论 -
贪心算法与动态规划的比较
【摘 要】介绍了计算机算法设计的两种常用算法思想: 贪心算法与动态规划算法。通过介绍两种算法思想的基本原理,比较两种算法的联系和区别。通过背包问题对比了两种算法的使用特点和使用范围。 【关键字】动态规划;贪心算法; 背包问题 1、引言 为了满足人们对大数据量信息处理的渴望,转载 2016-07-24 00:48:34 · 1803 阅读 · 0 评论 -
排序算法:实现,平均复杂度,最好(坏)情况复杂度,稳定性
1:冒泡算法 1.1 实现void bubbleSort(int *a, int n){ int i; int j; int flag; for(i = 0; i { flag = 0; for(j = 0转载 2016-07-24 00:45:24 · 582 阅读 · 0 评论