自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Collin的专栏

Information retrieval, machine learning, algorithms and more.

  • 博客(33)
  • 收藏
  • 关注

转载 c++成员函数的存储

用类去定义对象时,系统会为每一个对象分配存储空间。如果一个类包括了数据和函数,要分别为数据和函数的代码分配存储空间。按理说,如果用同一个类定义了10个对象,那么就需要分别为10个对象的数据和函数代码分配存储单元,如图8.4所示。图8.4 能否只用一段空间来存放这个共同的函数代码段,在调用各对象的函数时,都去调用这个公用的函数代码。如图8.5所示。图8.5

2014-08-17 16:00:32 859

原创 MSRA实习结束

昨天,为期7个月的MSRA(微软亚洲研究院)的实习

2014-08-02 19:47:06 6638

原创 编辑距离算法

动态规划求编辑距离。允许的操作有:delete, insert, replace

2014-07-21 09:15:11 805

原创 查找数组中出现次数超过一半的元素

基本思想:如果将数组

2014-07-20 17:42:36 849

原创 打印二叉树中所有和为某一值的路径

采用前序遍历二叉树,访问过程中保存路径上的结点,到达叶节点时,判断是否满足条件。

2014-07-20 16:02:47 724

原创 输入一个数列,判断是否为某一个二叉搜索树的后序遍历序列

这里假设数列中没有 根据二叉搜索树的特点,做子树所有节点值小于根节点,

2014-07-20 15:34:54 977

原创 求二叉树的镜像

#include using namespace std;struct BiTreeNode{ int val; BiTreeNode* leftChild; BiTreeNode* rightChild;};void MirrorBiTree(BiTreeNode* root){ if (root == NULL || (root->leftChild == NUL

2014-07-20 14:16:50 495

原创 判断一个二叉树是否是另一个的子树

输入两个二叉树A,B,设计一个程序检测B是否是A的子树。

2014-07-20 13:58:09 931

原创 反转单链表

输入一个单链表,程序需要反转链表。注意输入为NULL或者只有一个

2014-07-20 10:28:46 468

原创 打印1到n位所有数

输入n,要求打印从1开始到

2014-07-20 08:51:22 1918

原创 快速排序代码

快速排序相对较简单,但是如何把代码邪邪的

2014-07-19 10:30:00 547

原创 用两个栈实现队列

思路很简单:入队列时,

2014-07-18 23:55:41 519

原创 由前序和中序序列构建二叉树

根据前序遍历和中序遍历的特点,前序序列的第一个数是树的根结

2014-07-18 23:21:48 681

原创 判断单链表是否存在环,存在的话找入口点

判断是否有环设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)

2014-07-13 21:02:50 669

原创 一个长度为A的无序数组,找到中位数

思路1:1.1 将前(n+1)/2个元素调整为一个最小堆;1.2 对后续每一个元素和堆顶比较,如果小于等于堆顶,丢弃之,去下一个元素。如果大于堆顶,用该元素取代堆顶,调整堆,去下一个元素重复1.2步1.3 当遍历完所有元素之后,堆顶为中位数思路2:利用快速排序的partition函数,任意挑一个元素,以该元素key,划分数组为两部分,如果左侧集合长度正好为(n+1)/2,那么k

2014-07-13 20:15:01 1924 1

原创 重排数组元素,奇数放在奇数位,偶数放在偶数位

给定一个长度位2N的数组,

2014-07-13 14:23:30 2447

原创 删除单链表倒数第K个节点

有P1, P2两个指针,P1从头开始跑,先跑K个节点,然后P2开始跑,当P1跑到头时,P2指向的就是倒数第K个节点了。这道题的思路比较简单,要想做得更好,可以加入一些鲁棒性的考虑,比如说空链表情况,链表长度小于k等。下面是代码:

2014-07-12 23:20:26 665

原创 调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。分析:如果不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。由于碰到一个偶数,需要移动O(n)个数字,因此总的时间复杂度是

2014-07-12 22:14:14 593

转载 c++ 避免头文件重复引用 (pragma once与 #ifndef的区别)

如何防止头文件被重复引用?有两种方法:1.方法一: 使用:   # pragma  once 2>方法二:使用:  # ifndef      #define     #endif   例:#ifndef XXXXXXX (一个名字,尽量做到唯一)  #define XXXXXXX (跟上边的名字一样)   文件最后写:  #en

2014-07-12 18:43:32 4347

原创 k近邻法课后习题解答

3.2 求得的最近邻点是(2,3)3.3 k近邻算法如下:(思路:求得一个最近邻后,从kd树中删除这个结点)#include #include #include #include using namespace std;/*function of this program: build a 2d tree using the input training data th

2013-07-09 18:23:54 2756 1

原创 最近邻算法的实现:k-d tree

一、如何高效率地实现k近邻法?  在SIFT图像特征匹配等应用中,需要在高维特征空间中快速找到距离目标图像特征最近邻的那个特征点,往往需要进行比较的特征向量的数量很大,如果进行朴素最近邻搜索,也就是依次计算目标点和每一个待匹配特征的距离,然后再算出最短距离这样的策略,那么特征匹配算法的时间复杂度将会高得令人难以接受。因此,我们需要借助一种存储和表示k维数据的数据结构,既能够方便地存储k维数

2013-07-09 10:20:48 14472 7

原创 统计学习方法阅读笔记:k近邻法

k近邻法由Cover和Hart在1968年提出,是一种基本的分类与回归方法。k近邻法的输入是实例的特征向量,对应于特征空间中的点,输出为实例的类别,可取多值(此前介绍的感知机模型只是线性二类分类模型)。k-nearest neighbours(kNN)的基本思想是:在训练集中寻找k个与新的输入实例最接近的实例,构成一个k邻域,并将测试实例归于这个集合中占最大优势的类别。k近邻法中的几个关键要素是:

2013-07-06 22:16:11 1639

转载 漫话中文分词和语义识别(下):句法结构和语义结构

这篇文章是漫话中文分词算法的续篇。在这里,我们将紧接着上一篇文章的内容继续探讨下去:如果计算机可以对一句话进行自动分词,它还能进一步整理句子的结构,甚至理解句子的意思吗?这两篇文章的关系十分紧密,因此,我把前一篇文章改名为了《漫话中文自动分词和语义识别(上)》,这篇文章自然就是它的下篇。我已经在很多不同的地方做过与这个话题有关的演讲了,在这里我想把它们写下来,和更多的人一同分享。    什

2013-07-06 09:29:13 2058

转载 Latex之数学公式的输入

LaTeX最强大的功能就是显示美丽的数学公式,下面我们来看这些公式是怎么实现的。数学公式的前后要加上 $ 或 \( 和 \),比如:$f(x) = 3x + 7$ 和 \(f(x) = 3x + 7\) 效果是一样的;如果用 \[ 和 \],或者使用 $$ 和 $$,则改公式独占一行;如果用 \begin{equation} 和 \end{equation},则公式除了

2013-07-05 17:12:35 2808

原创 感知机章节课后习题 + 证明感知机算法收敛性

看了下统计学习方法P36 的3个习题,试着做了下,下面给出自己的解答:  有不对的地方欢迎提出:)Q 2.1  感知机是线性模型,因此不能表示复杂的函数。请解释感知机为什么不能学习异或XOR函数?A 2.1  XOR:这个想必大家都很清楚了,输入的两个逻辑值一真一假XOR结果为真,两个输入逻辑值同真同假XOR得假。下面这个图解释的很清楚:  训练集线性不可分,当然不能用感知

2013-07-04 23:40:14 5217

原创 感知机学习

基本概念:感知机是二类分类的线性分类模型,对应于特征空间中将实例划分为正负两类的分离超平面,属判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面。 感知机的定义:从输入空间Rn到输出空间{+1,-1}的函数映射:f(x)= sign(w*x+b)模型参数:w----权值向量   b----偏置wx+b = 0 -----分离超平面方程 数据集{(xi,yi)

2013-07-04 14:38:22 1691

转载 使用SGD(Stochastic Gradient Descent)进行大规模机器学习

1 基于梯度下降的学习 对于一个简单的机器学习算法,每一个样例包含了一个(x,y)对,其中一个输入x和一个数值输出y。我们考虑损失函数,它描述了预测值和实际值y之间的损失。预测值是我们选择从一函数族F中选择一个以w为参数的函数的到的预测结果。 我们的目标是寻找这样的函数,能够在训练集中最小化平均损失函数  由于我们不知道数据的真实分布,所以我们通常使用  来代替  

2013-07-04 10:22:50 1313

原创 Language Model

2013-07-04 09:57:56 762

原创 IBM 模型 1,2,3

2013-07-04 09:54:34 3867

原创 Phrase-based translation

2013-07-04 09:49:17 1178

原创 Ubuntu12.04下moses的安装与测试Ubuntu

12.04 AMD64 运⾏行于VMware fusion 5.0.3Boost 1.48.01.Boost的安装(可参考官⽅方⺴⽹网站http://www.boost.org)由于Moses编译需要boost和其他依赖库⽂文件,所以需要⾸首先安装Boost Library.⾸首先需要安装⼀一些依赖包:apt-get install python-devapt-get

2013-07-04 09:40:34 3187

转载 Python 中文乱码解决方法

比如我从网上下载一些信息或写个电子邮件程序下载到本地,以记事本(txt)形式写入并保存在本地计算机,为什么看到只是英文和乱码的?该怎样做呢?答乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台直接打印utf-8的字符串当然是乱码了。解决方法:在控制台打印

2013-07-04 09:38:50 1298

转载 数学之美番外篇:平凡而又神奇的贝叶斯方法

概率论只不过是把常识用数学公式表达了出来。——拉普拉斯记得读本科的时候,最喜欢到城里的计算机书店里面去闲逛,一逛就是好几个小时;有一次,在书店看到一本书,名叫贝叶斯方法。当时数学系的课程还没有学到概率统计。我心想,一个方法能够专门写出一本书来,肯定很牛逼。后来,我发现当初的那个朴素归纳推理成立了——这果然是个牛逼的方法。——题记目录0. 前言 1. 历史

2013-07-04 09:35:11 1012

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除