自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Saga,一路向前

专注于互联网行业,感兴趣于搜索,数据挖掘,推荐。

  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 TopK算法及实现

1. 问题描述  在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载率最高的前10首歌等等。2. 当前解决方案  针对top k类问题,通常比较好的方案是【分治+trie树/hash+小顶堆】,即先将数据集按照has

2011-10-20 14:08:09 10348

原创 不同变量类型在32位和64位机器上的长度

近日在centos下用c++/c写东西,这个程序的服务端运行在64位的centos下,程序是在32位机器上写的。其实这个是没有问题的,在编译的时候就已经决定了其所占内存的长度。如:long a = 0;printf("size of a is %d", sizeof a);      上述代码在32位机器上编译、在32位/64位机器上执行时,结果均为size of a is 4。

2012-03-27 13:28:02 3231

原创 ERROR CODE中常用的一些错误信息

关于error.h中的一些要点的解释,最近一段时间开发的东西老是出错,不得以到处找错误代码的信息。Error lock up翻了个底。下面列出以下常用的错误信息以及相对应的解释。#ifndef _I386_ERRNO_H#define _I386_ERRNO_H#define EPERM 1 /* Operation not permitted */#define ENOE

2012-03-23 10:59:46 7334

转载 许单单奋斗记--转

短评:【互联网行业的择业明星!】       进入职场4年半,许单单已经跳了3次槽,从年薪10万的互联网公司员工成为一个年薪近几百万的美国基金公司分析师,许单单的成功是几乎不可复制的。像他这样一个曾经一无所有的人,或许有更强的能力获得一切。  许单单的故事非常适合被写成奋斗传奇。1982年出生的安徽农村小子,研究生毕业5年,跳槽3次,从一名年薪10万元的互联网公司职员,变成年薪几百

2012-02-24 18:00:02 2083

转载 volatile关键字 详解

来源:http://www.cppblog.com/mzty/archive/2006/08/08/10959.htmlvolatile关键字  volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

2012-02-14 11:22:25 478

转载 Linux下的压缩解压缩命令详解

linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.2.unzipunzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:不提示的情况下覆盖文件;-d:-d /home/sunny

2012-01-11 14:02:38 609

转载 计算几何算法列表

一、引言  计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用。在本文中,我们将对计算几何常用的基本算法做一个全面的介绍,希望对您了解

2011-12-30 14:25:22 911

原创 思想行动之Tips提示框引擎的索引结构

摘要       对于一个轻量级的引擎来说,索引结构直接决定了其性能的好坏,最近的工作中一直接触到本地搜索,参考一些关于Lucene的思想。本文将陈述几种提示框引擎的索引结构,(下面的都用Tips来取代提示框引擎)只为抛砖引玉,未经验证。欢迎大家拍砖!鉴于Tips返回结果的特殊性:一般只需返回十个结果、因为每敲入一个字即是对引擎的一次请求、用户对引擎的请求十分频繁,对性能要求十分的高。因此

2011-12-16 16:55:44 1506

原创 Linux基础之Vi文本编辑器

这一段时间重点看了下鸟哥的私房菜(http://vbird.dic.ksu.edu.tw/),发现这位大哥写的非常深入浅出,易懂。对于我这种Linux了解水平的人来说太实在。之前也就会在Linux下调试调试程序,简单地修改。总觉得部署,脚本自有运维的兄弟在。啊哈,这样的想法是大错特错的。虽不求了然全知,但Linux下基础的东西还是要明白的。 ----写在前面的话Vi文本编辑器

2011-12-16 16:09:55 614

转载 Linux基础命令之Test

Test命令用来检测系统上面某些文件或者是相关的属性是一个不错的选择。在linux下man test出现上述信息。说明一下常用的几个参数。-e filename //该『档名』是否存在?-f filename //该『档名』是否存在且为文件(file)?-d path //该『档名』是否存在且为目录(directory)?-r    fil

2011-12-15 16:08:48 546

原创 C语言陷阱和缺陷之词法缺陷

1.1 = 不是 ==从Algol派生出来的语言,如Pascal和Ada,用:=表示赋值而用=表示比较。而C语言则是用=表示赋值而用==表示比较。这是因为赋值的频率要高于比较,因此为其分配更短的符号。此外,C还将赋值视为一个运算符,因此可以很容易地写出多重赋值(如a = b = c),并且可以将赋值嵌入到一个大的表达式中。这种便捷导致了一个潜在的问题:可能将需要比较的地方写成赋值。因此,下面的

2011-12-15 15:56:43 584

原创 C语言陷阱和缺陷之开始篇

实际工作中写C/C++程序有一年多了。前些日子看到>这本书,匆匆过了一遍以后发现里面讲的东西很实用。特此再学习一遍并和大家分享。

2011-12-01 21:48:30 1165

转载 Linux技巧:基础篇之修改IP地址

静态方法注意:所有操作均使用root用户修改ip:编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 //设备名称,不要修改BOOTPROTO=static //不要修改BROADCAST=10.10.22.255 //广播地址,一般为本网段的最后一个IPIPADDR=10.10.22.145 //ip地址

2011-11-30 15:33:34 539

转载 Lucene的算法原理

Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构。该结构及相应的生成算法如下:  注意到关键字是按字符顺序排列的(lucene没有使用B树结构),因此lucene可以用二元搜索算法快速定位关键词。   实现时 lucene将上面三列分别作为词典文件(Term Dictionary)、频率文件(frequencies)、位置文件 (positions)保存。其中词

2011-11-27 21:11:20 1294 1

转载 linux 技巧:使用 screen 管理你的远程会话[转载]

原文链接:https://www.ibm.com/developerworks/cn/linux/l-cn-screen/之前通过XShell连接虚拟机进行一项数据处理,下班前满心欢喜地CTRL+C退出来。第二天上班发现程序压根就没有继续执行。在网上找了一篇很好的文章和大家分享。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。在Linu

2011-11-11 16:50:26 834

原创 C中的auto、static、register、const、extern和volatile的说明

C语言中的每一个变量和函数有两个属性:数据类型和数据的存储类别。数据类型(整形、字符型等),存储类别是指数据在内存中存储的方法,存储方法有两大类:静态存储类和动态存储类。具体包括四种:自动的(auto),静态的(static),寄存器的(register)和外部的(extern)。        auto变量:函数中的局部变量,如不专门声明static,一般都是动态地分配存储空间。自动变量:在

2011-11-08 17:35:40 854

原创 2维有序数组中查找一个数K的问题

问题描述:  在一个2维有序数组(N*N)中查找一个值为K。  其数组的描述如下图:       其中:行递增序列,列也是递增序列。      解决方案:1:刚开始想到了败者树来查找,发现有点大才小用。并且时间效率也不是很高,败者树主要是来做多路归并或是未排序的数组的一个查找过程。这样的时间复杂度也得O(N*logN);

2011-11-04 17:18:51 839

转载 typename的两个含义

问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? template class Widget; // uses "class"template class Widget; // uses "typename"  答案:没什么不同。在声明一个 template type paramet

2011-11-02 15:14:08 630

转载 数据结构之败者树

败者树原理 2个子结点比较后的败者放入它们的父结点,而胜者送到它们父结点的父节点去再作比较,这才是败者树。ls[0]放的是最终的胜者。堆:       当n较大的时候采用什么算法呢?首先我们分析上面的算法,当从N中取出一个新的数m的时候,它需要依次和max1,max2,max3……maxn比较,一直找到一个比m小的maxx,用m来替换max x,平均比较次数是n/2。可不可

2011-10-21 14:07:20 4645 2

原创 多路归并问题详解

工作的时候遇到一个倒排序列的归并问题。当然:每个序列都是有序的,这里我们令有序为从小到大排序。思考时,其主要有几点归并要求:1、归并求不同路的交集的时候交集个数越大越好。2、只有当结果数不满足排序需求的时候才去求归并的并集。3、在每一路中可能存在相同的元素。       代码中在归并的时候使用了 败者树 这一思想来实现。具体:(假设归并的路数为N,每一路的元素个数为M)1、建立

2011-10-20 18:12:58 4087 1

原创 scanf printf sscanf sprintf 函数时格式化字符说明

经常要用到格式化输出,输入函数,因此各个格式化字符就显得比较重要。下面对常用的格式化字符做一个总结:%d:格式化为有符号十进制整数,可以有长度的修饰。如 %5d %ld。%5d表示格式化的宽度为5。%o:格式化为有符号八进制数%x:格式化为有符号16进制数%I64d:格式化为有符号十进制数,ps:64位数据。LINUX下为%lld上述所述均有对应的无符号类型: %u & %I6

2011-10-20 11:26:58 1064

原创 C/C++ 代码换行问题

C/C++ 代码换行问题在写代码的时候遇到代码超长的情况下为了代码的美观及方便测试,故需要涉及到代码的换行问题,以下讨论了几种的情况:1、#define的宏      宏定义是以“\”换行,如:#define MAX(a,b) \ ((a)

2011-10-18 15:18:03 21029

转载 C++ 优先级

C/C++优先级列表,保存下,没事看几眼PrecedenceOperatorDescriptionExampleAssociativity1()[]->.::+

2011-10-13 15:31:01 578

转载 不定长参数处理方法--va_list、va_start、va_arg、va_end的原理与使用

<br />原文地址:http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.htmlva_list、va_start、va_arg、va_end的原理与使用概述<br />由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义<br />大家先看几宏.<br />在VC++6.0的i

2011-03-18 10:37:00 1003

原创 Open函数——详解

Open函数的函数原型如下:gcc:  _CRTIMP int __cdecl _open (const char*, int, ...);VC6.0:_CRTIMP int __cdecl _open(const char *, int, ...);Borland C++Builder:int   _RTLENTRY _EXPFUNC open(const char _FAR *__path, int __access,... /*unsigned mode*/);tc3.1:int _Cdecl _FA

2011-03-02 17:18:00 2178

转载 #define与typedef用法

<br /> <br />typedef用法 与#define<br /> <br />typedef根据名字就知道是对类的定义。但是值得注意的是,它并不定义新的类型,而是对已有的类型定义一个其他的名字。本人生就略愚,常常搞不清与#define的关系,难道仅仅是所定义得到的新类型所在的位置不同吗?首先我们仔细看看typedef。<br />一、typedef的用法<br />人说typedef的使用可以编写更加美观和可读的代码,原因是typedef可以隐藏笨拙的语法结构以及平台相关的数据类型,从而增加可移植

2011-03-02 17:03:00 489

转载 内联函数 -- inline总结

该篇文章来自于http://www.sunistudio.com/cppfaq/inline-functions.html简体中文版翻译:申旻,[email protected]更新内容翻译:Alex

2010-12-09 17:32:00 1611

Makefile文件综述

Makefile 文件 综述 详细描述了 makefile 文件的组成 & keywords的含义

2011-05-11

Effective_STL中文版

Effective_STL中文版 非常好的东东

2010-04-29

mapX帮助mapX帮助mapX帮助

mapX帮助 mapX帮助 mapX帮助 mapX帮助 mapX帮助 mapX帮助

2010-03-15

空空如也

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

TA关注的人

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