- 博客(126)
- 资源 (3)
- 收藏
- 关注
原创 为自己定的目标
对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。 01. 变得有耐心 02. 保持健康 03. 拥抱变化带来的不适应 04. 学习一门新的编程语言 05. 自动化 06. 学习更多数学知识 07. 关注安全 08. 备份你的数据 09. 学习更多理论知识 10. 接触
2013-10-05 21:16:14 4129
转载 android service
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11952435 相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,
2014-05-09 00:31:32 3727
转载 java 回掉原理
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中
2014-05-09 00:04:39 3886
转载 explicit c++
C++笔记(1)explicit构造函数 Explicit Constructors(显式构造函数)收藏 按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class String { String ( const char* p ); // 用C风格的字符串p作为初始化值 //… } String
2013-12-03 11:42:13 4591
原创 特征选择之信息增益
文本分类入门(十一)特征选择方法之信息增益 前文提到过,除了开方检验(CHI)以外,信息增益(IG,Information Gain)也是很有效的特征选择方法。但凡是特征选择,总是在将特征的重要程度量化之后再进行选择,而如何量化特征的重要性,就成了各种方法间最大的不同。开方检验中使用特征与类别间的关联性来进行这个量化,关联性越强,特征得分越高,该特征越应该被保留。 在信息增益中,重要性
2013-10-19 16:58:58 3973
转载 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1、KD树;2、神经网络;3、编程艺术第28章。你看到,blog内的文章与你于别处所见的任何都不同。于是,等啊等,等一台电脑,只好等待..”。得益于田,借了我一台电脑(借他电脑的时候,我连表示感谢,他说“能找到工作全靠你的博客,这点儿小忙还说,不地道”,有的时候,稍许感受到受人信任也是一种压力,愿我不辜负大家对我的信任
2013-10-18 19:52:30 5616
原创 排序算法之堆排序
1.保持最大堆的性质:2.建立最大堆3.堆排序 1 MAX_HEAPIPY(A,i) 2 l=left(i) 3 r=right(i) 4 if(la[i]) 5 then largest=l; 6 else largest=i 7 if(ra[largest]) 8 then l
2013-10-09 10:44:29 3259
原创 google开源gumbo-parser系列
1.DOM元素节点nodeType取值详解 Element nodeType values Returned integer Node type Constant 1 ELEMENT_NODE 2 ATTRIBUTE_NODE 3 TEXT_NODE 4 CDATA_SECTION_NODE 5 ENTITY_REFERENCE_NODE 6 ENTITY_NODE 7 PROCE
2013-10-08 21:22:47 8004 1
原创 c++ union的使用
联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是联合、怎么去用、有什么需要注意的地方呢?就这些问题,我试着做一些简单的回答,里面肯定还有不当的地方,欢迎指出! 1、什么是联合? “联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”
2013-10-08 21:00:49 3628
转载 腾讯笔试题
试卷类型:软件开发A1 考试时长:120分钟 一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分) 1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D) A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA 2 下列哪两个数据
2013-10-08 15:02:29 14413 8
原创 linux 进程通信
一、进程间通信概述 进程通信有如下一些目的: A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 D、资源共享:多个进程之间共享同样的资源。为了作
2013-10-08 12:42:42 3703
原创 struct stat 作用
stat,lstat,fstat1 函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。函数原型#include int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。 int fstat(int filedes, struct stat *buf);通过文件
2013-10-06 13:14:11 3520
原创 c++ extern c的作用
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不
2013-10-06 08:01:13 3295
原创 simhash
传统的hash算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。产生的两个签名,如果相等,说明原始内容在一定概率下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别极大。从这个意义上来说,要设计一个hash算法,对相似的内容产生的签名也相近,是更为艰难的任务,因为它的签名值除了提供原始内容是否相
2013-10-05 15:08:02 4869
转载 有趣直观的排序算法
1. 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次
2013-10-05 11:45:42 3638
转载 浅析pagerank
很早就对Google的PageRank算法很感兴趣,但一直没有深究,只有个轮廓性的概念。前几天趁团队outing的机会,在动车上看了一些相关的资料(PS:在动车上看看书真是一种享受),趁热打铁,将所看的东西整理成此文。 本文首先会讨论搜索引擎的核心难题,同时讨论早期搜索引擎关于结果页面重要性评价算法的困境,借此引出PageRank产生的背景。第二部分会详细讨论PageRank的思想来源、基础框架
2013-10-04 22:13:00 6082
转载 PCA
PCA的一些基本资料 最近因为最人脸表情识别,提取的gabor特征太多了,所以需要用PCA进行对提取的特征进行降维。 本来最早的时候我没有打算对提取的gabor特征进行降维,但是如果一个图像时64*64,那么使用五个尺度八个方向的gabor滤波器进行滤波,这样提取的特征足足有64*64*5*8这么多,如果图像稍微大一点,比如128*128的图像,那么直接提取的特征就会几十万,所以不降维
2013-09-30 13:54:30 20366 6
原创 协方差
协方差的定义 对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。 记住,X、Y是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给定 则X表示x轴可能出现的数,Y表示y轴可能出现的。注意这里是关键,给定了4
2013-09-30 13:39:00 6091
原创 larbin配置
Larbin的使用--安装 1、到网上下载 larbin-2.6.3.tar.gz,然后解压。 tar zxvf larbin-2.6.3.tar.gz 2、 到解压的目录,运行配置文件 ? ./configure 却出现以下的错误: ? make[2]: 正在进入目录 `/ho
2013-09-29 20:10:54 4165
转载 面试题
技术部面试题——经典智力问题收集 第一部分题目开始: 1、有两根不均匀分布的香,香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间? 2、一个经理有三个女儿,三个女儿的年龄加起来等于13,三个女儿的年龄乘起来等于经理自己的年龄,有一个下属已知道经理的年龄,但仍不能确定经理三个女儿的年龄,这时经理说只有一个女儿的头发是黑的,然后这个下属就知道了经理三个女儿的年龄。请问三
2013-09-24 17:55:12 771
原创 根据先序中序求后序的递归算法
很久以前写过,现在把我的递归版本代码贴出 [cpp] view plaincopy struct tree { char c; struct tree * left_child; struct tree * right_child; } * root; tree * create_tree(char pre[], char in[], i
2013-09-14 16:30:15 757
原创 二维数组查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true; 如果查找数字5,由于数组不含有该数字,则返回false。 我的解题思路是这样的矩阵行列都是从小到大排好序的
2013-09-13 09:38:04 690
原创 arraylist vector linkedlist
最近用到了,所以依然是转载 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向
2013-09-12 17:03:23 637
原创 淘宝笔试题
通用试题部分: 选择题 1、在按层次遍历二叉树的算法中, 需要借助的辅组数据结构是 A、队列 B、栈 C、线性表 D、有序表 2、所谓指令周期是指 A、取指令和取操作数的时间 B、执行指令和存储操作结果的时间 C、取操作数和执行指令的时间 D、取指令和执行指令的时间 3、 调用一成员函数时, 使用动态联编的情况是 A、通过对象调用一虚函数 B、通过指针或引用调用一虚函数
2013-09-12 15:52:06 1026
转载 等概率随机函数的实现
题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数newRand(), 使其以1/n的等概率产生1~n之间的任意一个数。 解决思路:可以通过已知随机函数rand()产生等概率产生0和1的新随机函数Rand(),然后调用k(k为整数n的二进制表示的位数)次Rand()函数,得到一个长度为k的0和1序列,以此序列所形成的整数即为1--n之间的数字。注
2013-09-12 15:28:19 651
原创 split c 实现
#include #include int main(void) { char input[16] = "abc,d"; char *p; /**/ /* strtok places a NULL terminator in front of the token, if found */ p = strtok(input, ","); if (p) printf("%s\n"
2013-09-12 15:16:32 1087
转载 算法笔试题
第19题 a[i]在排序后的位置是[i-k, i+k],a[i+2k]在排序后的位置是[i+k, i+3k],必然有a[i] 所以数组a里实际上有2k个各自有序的、交错的子序列,如a1={a[0], a[2k], a[4k]...},a2={a[1], a[2k+1], a[4k+1], ...} 所以可以用2k-路归并排序,用一个大小为2k的小顶堆辅助归并,
2013-09-12 09:06:44 805
原创 二叉树遍历
二叉树的遍历是指按照一定次序访问二叉树中的所有节点,且每个节点仅被访问一次的过程。是最基本的运算,是其他运算的基础。 二叉树有两种存储结构:顺序存储和链式存储 顺序存储: (对完全二叉树来说,可以充分利用存储空间,但对于一般的二叉树,只有少数的存储单元被利用) [cpp] view plaincopy typedef struct {
2013-09-11 08:10:23 649
原创 蛇型数组
直接上代码: [cpp] view plaincopy #include #include int main(void) { //用户输入的值,创建n*n的矩阵 int n; //蛇形从1开始计数 int count = 1; //a[x][y],x是二维数组的第一个下标,y是第二个。 //round
2013-09-10 16:43:10 714
原创 链表逆序
设链表节点为 [cpp] view plaincopy typedef struct tagListNode{ int data; struct tagListNode* next; }ListNode, *List; 要求将一带链表头List head的单向链表逆序。 分析: 1). 若链表为空或只有一个元素,则直接返回; 2
2013-09-10 15:11:03 597
原创 typedef 与 typedef struct
分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是
2013-09-02 14:56:04 781
原创 c++ 公有继承/私有继承/保护继承
公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。 2. 私有继承(private) 私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被
2013-08-31 23:20:46 589
转载 c++ 模板
1. 模板的概念。 我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。 //函数1. int max(int x,int y); {return(x>y)?x:y ;} //函数2. float
2013-08-31 19:03:04 481
原创 string函数原型
class String { public: String(const char *str = NULL); // 普通构造 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(const String &other); // 赋值函数 p
2013-08-31 16:07:50 727
转载 C++浅拷贝和深拷贝的区别
对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=88; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream> using namespace std; class CExample { private: int a; pu
2013-08-28 18:47:53 597
原创 sizeof
文字是转载的,图是原创的。 1、空类的sizeof是1。空类是指没有成员的类,类中的函数不占空间,除非是虚函数。 [cpp] view plaincopy class A { public: A(){} ~A(){} void fun(){} };
2013-08-25 17:10:09 627
原创 struct与class的区别
讨论一下结构(struct)与类(class)的区别,你认为结构(struct)有些什么作用,可以完全用类(class)取代么?? --------------------------------------------------------------- 问的人太多,干脆整理个FAQ吧。 首先,讨论这个问题应该仅从语法上讨论,如果讨论不同人之间编程风格上的差异,那这个问题是没有
2013-08-22 15:40:16 487
原创 页式存储管理
操作系统原理:页式存储管理 内存分区存储管理的一个特点是连续性,每个程序都分有一片连续的内存区域。这种连续性导致碎片问题,包括 固定分区中的内碎片和可变分区中的外碎片。为了解决这些问题,人们又提出了“页式存储管理方案”。它的基本出发点 是打破存储分配的连续性,使一个程序的逻辑地址空间可以分布在若干个离散的内存块上,从而达到充分利用内存,提高 内存利用率的作用。 页式存储管理的基本思路是:
2013-08-22 14:55:29 1454
原创 面试宝典
struct S { int i; int *p; }; main() { S s; int *p = &s.i; p[0] = 4; //把i的值改为4 p[1] = 3;//这个地方越界写了,把保存在int i下面的指针int* p的值给写为3了 s.p = p; //又把这个指针s中指针p的值赋为上面int i的地址 s.p[1] = 1;//i下面的指针指向i的地址,现在把自身修改为1
2013-08-13 21:57:45 535
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人