自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王路路-nlp

从事社交网络数据挖掘、个性化推荐技术研究。

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

原创 linux关于sort命令的高级用法(按多个列值进行排列)

如果单纯地使用sort按行进行排序比较简单,但是使用sort按多个列值排列,同时使用tab作为分隔符,而且对于某些列需要进行逆序排列,这样sort命令写起来就比较麻烦了比如下面的文件内容,使用[TAB]进行分割:Group-ID   Category-ID   Text        Frequency-------------------------------------

2014-05-13 14:52:36 1905

原创 makefile学习经验(3)---动态链接

Lunix下生成动态库文件:         之前已经介绍了.o,.a,.so文件类型的含义,.so后缀的文件是动态库文件。        下面介绍在编译过程中链接到动态库文件的方法:一.   源码文件:so_test.h:void test_a();void test_b();void test_c(); test_a.c:

2014-05-08 16:08:50 687

原创 makefile学习经验(2)----静态链接

Lunix下编译静态库文件:.o后缀文件:编译生成的中间代码文件;.a后缀文件:静态库文件,编译的时候会合到可执行程序中,文件比较大;.so后缀文件:动态库文件,只是一个指向,不会合到可执行程序中,当要调用函数库的时候才使用; 用一个简单的例子阐述下在lunix环境下生成静态库文件的过程:一.   源码文件:so_test.h:voi

2014-05-08 16:07:38 763

原创 makefile学习经验(1)----初识Makefile

一.我对makefile的理解:经过一段时间对makefile的学习,我理解的makefile就是将程序员手动编译源文件的过程用一个脚本执行,这对于小型项目来说,程序员手动执行和用makefile来执行感官上可能没有大的差异,但是对于中大型项目来说,makefile的存在大大提供了程序员编译代码效率,一个好的makefile文件是一个项目健康存在的基础。 二.初涉makef

2014-05-08 16:06:14 600

原创 makefile例子

假设我们有一个程序由5个文件组成,源代码如下:/*main.c*/#include "mytool1.h"#include "mytool2.h"int main(){    mytool1_print("hello mytool1!");    mytool2_print("hello mytool2!");    return 0;} /*m

2014-05-07 09:58:04 925

原创 C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别

1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。2>静态局部变量具

2014-04-17 15:20:19 798

原创 二维数组中的查找

题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每一列都是递增排序。如果在这个数组中查找数字7,则返回true,如果查找数字5,则返回false12 8 924 9 1247 10 13

2014-04-16 19:53:39 937

原创 赋值运算符函数

题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数#include using namespace std;class CMyString{ public: CMyString(char* pData=NULL); CMyString(const CMyString& str); ~CMyString(void) private: char *m

2014-04-15 19:54:25 713

原创 关于sizeof的总结帖

(1)定义一个空的类型,里面没有任何的成员变量和成员函数。对该类型求sizeof

2014-04-15 19:33:14 530

转载 C语言中volatile关键字的作用

[-]一前言二volatile详解一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码

2014-04-13 19:59:29 700

原创 malloc、realloc和calloc的区别

三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL 

2014-04-03 14:46:13 736

转载 RAND函数和SRAND函数

首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。rand(产生随机数)表头文件: #include定义函数 :int rand(void)函数说明 :因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND

2014-03-31 12:38:00 799

转载 SVD因式分解实现协同过滤-及源码实现

SVD因式分解实现协同过滤-及源码实现在设计实现推荐系统,选择推荐算法时, 肯定会考虑协同过滤(CF)的使用,而CF中经常使用的两种方法包括: neighbour-based方法和因式分解。 作为一个搜索推荐系统,百度关键词系统中也使用了CF(包括neighbour-based和因式分解方法)为用户推荐流量,考虑到可解释性(例如关键词推荐系统上的推荐理由设计,很多时候可解释性, 比算法

2014-03-13 14:30:19 4589

原创 svd++

svd++分类: 推荐系统 机器学习2013-05-31 20:50 836人阅读 评论(0) 收藏 举报目录(?)[-]CONTENTSMODEL FORMALIZATIONGENERAL FORMALIZATION FOR USER FEEDBACK INFORMATIONLEARNINGLITERATUREIMPLEMENTATIONS

2014-03-13 14:28:23 4015 1

转载 有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?

1、有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒。 我来解释一下,并给出一个方案,时间不是问题,24小时内肯定可以找出有毒的那瓶。 给1000个瓶分别标上如下标签(10位长度): 0000000001 (第1瓶) 0000000010 (第2瓶) 0000000011 (第3瓶) 

2014-03-12 16:36:34 16350

转载 typedef用法小结

Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。      typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构

2014-03-12 15:01:26 553

转载 catalan数总结

令h(0)=1,h(1)=1,catalan数满足递推式[1]:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)例如:h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=1*2+1*1+2*1=5另类递推式[2]:

2014-03-10 14:38:18 749

转载 C/C++ 中static关键字详解

面试的时候被问到这个问题,这里总结了下,感谢博主:http://blog.chinaunix.net/uid-26548237-id-3363907.html   静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。   静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其他文件中不可见。    用法1:

2014-03-10 14:07:29 763

转载 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

原文来自:博客园(华夏35度)http://www.cnblogs.com/zhangchaoyang 作者:Orisun最大子序列最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,

2014-03-10 13:24:49 684

原创 字符串的所有组合问题,输入三个字符a,b,c,则它们的组合有a,b,c,ab,ac,bc,abc

求组合的问题,跟求排列的问题类似,很容易的想到递归的实现方式。在求一个字符串中所有字符的组合的时候,针对一个字符,有两种情况,假设在长度为n的字符串中选择长度为m的组合字符串,第一是选择长度为n的字符串中的第一个字符,那么要在其余的长度n-1的字符串中选择m-1个字符第二是不选择长度为n的字符串中的第一个字符,那么要在其余的长度n-1的字符串中选择m个字符递归结束的

2014-03-10 13:00:31 6259

原创 动态规划——数组中最长递减子序列

求一个数组的最长递减子序列比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}分析:典型的动态规划题目,对每一个数计算由它开始的最大递减子序列的个数,并存放到一张映射表中。例如对数组a[n]有……然后利用求得的映射表及最大子序列个数获取原数组中的元素。对于{9,4,3,2,5,4,3,2}我们求得最大子序列个数为nMaxLe

2014-03-09 21:50:00 1201

原创 求一个矩阵中最大的二维矩阵(元素和最大)

一,题目:求一个矩阵中最大的二维矩阵(元素和最大).如:1 2 0 3 42 3 4 5 11 1 5 3 0中最大的是:4 55 3要求:(1)写出算法;(2)分析时间复杂度;(3)用C写出关键代码二,分析: 假设最大子矩阵的结果为从第r行到k行、从第i列到j列的子矩阵,如下所示(ari表示a[r][i],假设数组下标从1开始):

2014-03-06 16:11:14 1890

转载 《数组-规划》 有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小

一,题目:有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。      例如:                 var   a=[100 ,99 ,98 ,1 ,2 ,3];       var  b=[1, 2, 3, 4, 5, 40];      有两个序列a,b,大小都为n,序列元素的值

2014-03-06 15:38:17 2996 2

原创 《动态规划》 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m

这是一道中兴的面试题题目:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.这道题就是一道典型的动态规划问题了,思路和背包问题差不多,m就相当于背包能容纳的重量了,就是从右往左校验,通过m,以及m-n进行下一次也就是当前是printList(m,n)那接下来就是

2014-03-06 14:46:52 8502 6

原创 求1+2+…+n,要求不能使用乘除法等

题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。解法一:巧用递归解法二:利用构造函数求解class Temp{public:      Temp() { ++ N; Sum += N; }      static void Reset() { N

2014-03-05 21:35:22 1166

转载 二叉树中节点的最大距离

昨天花了一个晚上为《编程之美》,在豆瓣写了一篇书评《迟来的书评和感想──给喜爱编程的朋友》。书评就不转载到这里了,取而代之,在这里介绍书里其中一条问题的另一个解法。这个解法比较简短易读及降低了空间复杂度,或者可以说觉得比较「美」吧。问题定义如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点

2014-03-05 21:17:32 633

转载 C语言sprintf与sscanf函数[总结]

1、前言    我们经常涉及到数字与字符串之间的转换,例如将32位无符号整数的ip地址转换为点分十进制的ip地址字符串,或者反过来。从给定的字符串中提取相关内容,例如给定一个地址:http://www.bokeyuan.cn:2345,我们要从地址中提出协议,主机地址和端口号。之前对字符串和数字之间的关系不是很熟悉,工作中经常涉及到这个,如是好好总结一下。C语言提供了一些列的格式化输入输出

2014-03-03 14:06:23 1059

原创 《java编程思想系列之9》 类型信息

java是如何让我们在运行时候识别对象和类的信息的?1)传统的RTTI:编译时候就已经知道了所有的类型2)反射机制:允许我们在寻星的时候发现和使用类的信息一、为什么需要RTTIRTTI名字的含义:在运行时,识别一个对象的类型。二、Class对象所有的类都是在对其第一次使用的时候,动态加载到JVM中的。当程序创建第一个对类的静态成员的引用时,就

2014-02-27 14:55:30 850

原创 《java 编程思想系列之8》 通过异常处理错误

一、概念二、基本异常当抛出异常之后,有几件事情会随之发生:首先,同java中其他对象的创建一样,将使用new在堆上穿件异常对象。然后当前的执行路径(它不能继续下去了)被终止,并且从当前环境中弹出对异常对象的引用。此时,异常处理机制接管程序,并开始寻找一个恰当的地方来继续执行程序。这个恰当的地方就是异常处理程序。1、异常参数1)所有标准异常类都有两

2014-02-25 14:12:06 748

原创 《java编程思想系列之5》 多态

一、再论向上转型向上转型:对某个对象的引用视为对其基类的引用忘记对象类型二、转机1、方法调用绑定c方法调用:前期绑定java方法调用:后期绑定如果一种语言想要实现后期绑定,就必须具有某种机制,以便在运行的时候能够判断对象的类型,从而调用恰当的方法。也就说编译器一直不知道对象的类型,但是方法调用机制能够找到正确的方法体,并加

2014-02-20 10:46:58 826

原创 《java编程思想系列之4》 复用类

一、组合语法编译器并不是简单的为每一个引用都创建默认对象,这一点是很有意义的,因为若真的那样做的话,就会在许多情况下增加不必要的负担。如果想要初始化这些引用,可以在代码的下列位置进行:(1)在定义对象的地方。这意味着它们总能在构造器调用之前完成初始化(2)在类的构造器中(3)就在正要使用这些对象之前,这种方式成为惰性初始化。在声称对象不值得或者不必要每次都生成对象的情况下,

2014-02-19 16:15:03 970

原创 《java编程思想系列之1》 一切都是对象

一、用引用操纵对象java中(几乎)一切都是对象。尽管一切都看做对象,但是操纵的标识符实际上是对象的一个“引用”(reference)。可以将这一情形想象成为用遥控器(引用)来操纵电视机(对象)。只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频或者减小音量的时候,实际操控的是遥控器(引用),再有遥控器来调控电视机(对象)。如果想在房间里四处走动,同

2014-02-16 19:39:18 726

原创 Java泛型总结

0. 概述泛型是Jdk1.5引入的特性。泛型是Java程序员最常用且最容易被忽视的知识之一。许多Java程序员只是使用泛型类。但不考虑其工作方式,直到出现问题。1 术语用示例进行描述。ArrayList类、ArrayList类:整个称为ArrayList 泛型类型。ArrayList中的E称为 类型变量 或 类型参数。整个ArrayList 称为 参数化的类型。ArrayLis

2014-02-13 14:41:44 713

转载 Linux Make(Makefile)由浅入深的学习与示例剖析

经过长时间学习和研究linux GNU make工程管理器 ,现在把学习心得与大家分享一下,希望本文能教会您一些有用的东西。make工具,是所有想在Linux/Unix系统上编程的用户都需要且必须掌握的工具。如果您写的程序没有用到make工具,则说明您写的程序仅仅是个人练习小程序,称不上有实用价值的程序,因此我们必须学习、掌握并灵活运用它。 在Linux/UNIX 系统

2014-01-22 16:53:19 625

转载 java:抽象类与接口

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。       抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。      一、抽象类       我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描

2014-01-15 19:59:31 592

转载 Java:单例模式的N种写法

Singleton模式是在编程实践中应用最广泛的几种设计模式之一。以前知道的,实现单例的方法有两种(下面的A、B)。刚刚在读《Effective Java的时候》学到一种新的更好的方法(E):单元素的枚举类型。同时通过网上资料也知道了其他两种方法(C、D)。最后一种在Java中从1.5版本开始支持,其他语言在验证后说明。A.饿汉式(类加载的时候就创建实例)。代码如下:pub

2014-01-13 19:19:40 751

空空如也

空空如也

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

TA关注的人

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