自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

熟能生巧

实践出真知,知行合一!

  • 博客(21)
  • 资源 (4)
  • 收藏
  • 关注

原创 个性化你的shell提示符

看到同事对自己系统(linux)的命令行提示符,修改后有了颜色,还有笑脸感觉很cool,也仿效搞了一个,显示策略: 当前用户,时间,当前目录,如果是普通用户展示一个笑脸 :-) 表示可以随意操作, 并跟随$ 提示符。如果是超级用户展示一个肃脸:-| 表示要谨慎对待操作,并跟随# 提示符。在 /etc/profile.d/中新建ps1.sh 文件, 添加下面shell代码

2012-02-07 15:54:54 2088

原创 二叉排序树binary_sort_tree

当你希望获取快速的查找时间,快速的插入删除时间,并且遍历是有序的 数据结构, 你需要的就是二叉排序树了。AVL二叉平衡树,红黑树都是binary sort tree,  这就是STL中的map为什么(中序)遍历,key是有序输出的原因!注意: 二叉排序树,平均插入,查找O(logn), 但如果不平衡,极端情况,查找为O(n), 一棵斜树。 所以,利用平衡可以提高效率。为了简化,

2011-12-24 14:29:56 3935

原创 PageRank算法

总算有一个周末下午时间,决定亲手把pagerank算法实现一下。 之前只是看过思路,并一直使用同事的实现版本。 关于PageRank的介绍,请看http://zh.wikipedia.org/wiki/PageRankhttp://baike.baidu.com/view/1518.htm 不多废话了,直接进入正题,C++实现。公式采用:PR(A) = (1-d)

2011-12-11 20:25:22 12127

原创 新的开始

这两年在互联网推荐领域发展,视野,技术水平,接触的人员,较之以前在传统行业,都有了长足的进步。    今天突然心血来潮,回顾下很久之前写的文章,发现自己曾经很多青涩的地方。但很多内容,现在看来,都仍然对自己是个鞭策。所以,首先感谢CSDN提供这样一个开放的,优秀的技术平台,分享信息,同时记录了我一些难忘文章。    最近看了一些书,不仅仅技术上,还包括文学、管理等等,最大的感触就是,阅读、

2011-11-06 23:33:11 1539

原创 推荐技术的应用

很久不来了,发现csdn有了改版, 正巧最近两年研究推荐技术,有了一定积累后,也希望能分享些经验。顺便试试新版编辑是否方便,高效。开篇,不介绍各种推荐算法,技术相关知识了。 随笔一些实际商业领域应用需求。主要用于:电子商务, 新闻,媒体广告电子商务:  首先参考下  数据驱动B2

2011-07-22 09:44:05 1727

原创 大数幂运算

大数幂运算 源于POJ1001题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1001这个题目可以从简单问题一步一步入手。1. 先仿效上一篇计算大整数加法,计算一个大整数与一个个位数字的乘积 string Mul_singleInt(const string& s1, int n);2. 循环利用大整数加法计算大整数乘积 string Mul_i

2009-10-24 21:49:00 4430 3

原创 大非负整数加法运算

大数运算是一类算法应用,在密码学中比较常用。这里先完成一个最基本,最简单的大数运算-大非负整数加法运算。大整数通常指计算结果超出int存储范围的,亦即会产生溢出的情况。比如32位无符号整数最大为:2^32-1=4294967295所以接下来的算法就是要完成诸如4294967200 + 4294967220 = 8589934420这样的运算。     解题步骤:首先

2009-07-30 15:15:00 2615

原创 所有点对的最短路径-FloydWarshall算法

找出所有点对的最短路径,经典算法是Floyd-Warshall,关于该算法,《算法导论》等书籍给了充分的推理介绍,但均显得过于理论化,阅读起来不容易理解。 以下我以一个例子,详细阐述该算法的解题过程,力图将跳跃性降至最低,所以只阐述算法实现过程,详细证明过程请还是参考书籍。 例图选择《算法导论》的图25-1: 首先要明确,这里的最短路径均为简单路径,即:一条路径最多每个顶

2009-07-02 01:57:00 10907 2

原创 找最近点对问题-分治算法的应用

     分治算法的基本思想是:    分(divide):递归求解子问题,即:分解+求解,将问题分解为k个方便求解的小问题。    为什么说是递归求解呢,这里可以看作将一个问题分2个子问题,如果2个子问题还是大,再继续分成4个子问题,直到分解到能方便求解的小问题。也就是说分治算法是含有2个以上的递归运算,只有一个递归的例程不能算做分治算法。    治(conquer):从子问题构

2009-05-18 19:13:00 16247 12

原创 单源加权图最短路径问题2-BellmanFord算法

之前提到Dijkstra算法不能解决权值为负的情况。    Bellman-Ford算法能在更一般的情况下解决最短路径问题,即:允许权值为负。注意,最短路径问题实际上均不允许有负值回路(当然是从源点可达的),因为这时不存在最短路径。总会有更短的办法-多绕负边回路走几趟就是了。    首先介绍一下松弛技术(Relaxation)对每个顶点,都设置一个属性d[v], 用来描述从源点

2009-05-11 16:24:00 5048 1

原创 单源加权图最短路径问题(权值非负)-Dijkstra算法

解决单源最短路径的一个常用算法叫做:Dijkstra算法,这是一个非常经典的贪心算法例子。注意:这个算法只对权值非负情况有效。在每个阶段,Dijkstra算法选择一个顶点v,它在所有unknown顶点中具有最小的distance,同时算法将起点s到v的最短路径声明为known。这个算法的本质就是 给定起点,然后假设你有一个点集(known点集),对这个点集中的点,我们已经求出起点到其的

2009-05-05 17:24:00 10252 2

原创 无权最短路径-广度优先搜索

图的搜索技术是图算法领域的核心。许多图算法的开始,都是通过搜索输入的图来获取图结构信息,另外还有些图的算法实际上是通过图搜索算法经过简单扩展而成的。广度优先搜索的执行方法:从任意点s出发,先遍历与s相邻的点,然后再遍历于相邻的点相邻的点。注意有向图必须是顺方向的邻接点。详细方法,参考任何数据结构书吧。不赘述了。为什么说广度优先搜索可以用来求无权最短路径呢?因为,广度优先搜索每次都会先发现距离s

2009-04-30 23:54:00 9024 2

原创 拓扑排序

拓扑排序是对有向无环图的一种排序。表示了顶点按边的方向出现的先后顺序。如果有环,则无法表示两个顶点的先后顺序。在现实生活中,也会有不少应用例子,比如学校课程布置图,要先修完一些基础课,才可以继续修专业课。一个简单的求拓扑排序的算法:首先要找到任意入度为0的一个顶点,删除它及所有相邻的边,再找入度为0的顶点,以此类推,直到删除所有顶点。顶点的删除顺序即为拓扑排序。    很容易得到拓扑排

2009-04-22 17:07:00 36035 18

原创 构建一个图

在练习图的各种算法时,比如深度优先搜索,拓扑排序,最短路径,最小生成树等等,都希望得到有效的验证,这就必须先自己构建出图的存储结构。才能将图实例信息用于算法验证。要完整的构建一个图比较复杂,这里只是给出一个非常简单的例子,讲述如何使用邻接表构建一个图。基本是C语言实现。          此例,我们认为v1-v7的位置信息为 1-7,即v1位置为1,v2位置为2,。。。  

2009-04-21 09:42:00 2841

原创 深入学习算法的一点拙见

今天实在是头脑不听使唤了,没力气看书,写代码了。写点总结吧。都说算法是内功,究竟练到什么程度才算修成了呢? 为什么要学习,强化算法?首先强调的是,下面的原因均是建立在算法熟练到一定程度后的效果。不熟的话,未见得能达到效果。这些原因很现实。但很多程序员却不知道或不以为然。比较世俗的方面,顶级软件公司笔试,面试会问到。别说你不想去谷歌,百度,微软,如果真的没想过,我希望你能

2009-04-16 17:33:00 3957 6

原创 图的存储结构

     图的基本概念http://hi.baidu.com/%C8%ED%BC%FE%B8%D6%C7%D9%CA%A6/blog/item/f7b50c07791b8ec57a8947ec.html     图,无向图G = (V, E)有向图 G =     V是点集vertex, E是边集edge     图通常有两种存储方法。邻接矩阵, 多用于稠密图,记录每两个顶点之间边

2009-04-15 17:45:00 7137 2

原创 如何使用ACM练习算法

简单介绍下ACM,汗!还得现搜索一下。ACM(Association for Computing Machinery)国际计算机组织通常说的ACM是指 ACM国际大学生程序设计竞赛基本可以看作是写各种算法的比赛。 国内常用的ACM练习站:北大的比较有人气。http://acm.pku.edu.cn/JudgeOnline/刚刚注册了下,体验了一下流程。1 先Register

2009-04-14 16:40:00 7402

原创 堆排序

     要实现堆排序首先要理解堆相关的一些重要概念。    (1)什么是堆,堆于优先队列的关系?    堆实际上是优先队列数据结构的实现,也可以说,堆是具有优先队列性质的容器实现。    优先队列是允许下面两个操作的数据结构:InsertDeleteMin    即    DeleteMin     尤其要强调的是DeleteMin的操作,这步操作目的是找

2009-04-13 18:02:00 5110 2

原创 快速排序

排序算法是各种笔试,面试最常考到的一类题目,提到排序,一定会要求提供一种高效的方法,所以就不得不说一下快速排序了。快嘛!写出快速排序一定要先理解什么是枢纽元(pivot),枢纽元就是每次执行快排需要参照的那个元素。最常见的选择pivot的方法是选择第一个元素。此外还有最后一个元素,随机选择,中值法等等。比如 20,34,4,53,43,42,6,67,193  选择20为pivot经过

2009-04-09 16:51:00 7528 11

原创 如何构建二叉树

说干就干,先上一篇昨天写的文章。 以一道题目来说明如何建立二叉树。  题目:已知先序遍历,中序遍历 建立二叉树,然后求后序遍历。  e.g.    先序:a b d e i j c f g           中序:d b i e j a f c g           后序:d i j e b f g c a //期望结果 解法:先序中的首元素a 必为该二叉树的根结点

2009-04-09 10:18:00 18027 1

原创 首日封

开博了!       经过了多次尝试,多次鼓足力气,伴随着屡次失败后,今天终于选择在csdn上开始记录下自己生活,职业中收获与得到的点点滴滴。      既然选择了这里,放弃了sohu,sina,baidu,那就以技术为主导动力吧,平时自己也喜欢记录下工作中的经验,常用代码片段,但多数是存放在google doc中,只能自己独享。也是刚刚看到同学开通了csdn博客,才最终下定决心,在这

2009-04-09 10:05:00 803 1

google mapreduce 原理文档

google 的分布式系统库 mapreduce的原理阐述文档。

2009-09-04

C++ Annotated Reference Manual

这是C++ Annotated比较新的多线程多核部分

2009-07-09

高质量C++编程指南

林锐写的,比较适合面试前C++编程基础突击复习用。

2008-09-19

空空如也

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

TA关注的人

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