自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

京东放养的爬虫

努力成为一个优秀的人,我在北京要活的精彩。

  • 博客(38)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 归并排序详细分析

首先我们可以先想象一下,将两个有序的数组A、B合并成一个数组C有什么好的办法。我们只需从两个数组的第一位开始比较就可以了,但是到最后一定会有一个数组会剩下一些元素,我们只需将其全部连接到C后面就可以了,这样是不是很简单,而且时间效率也达到了O(n)。//将有序数组a[]和b[]合并到c[]中void MemeryArray(int a[], int n, int b[], int m, in

2015-07-29 23:53:51 1267

原创 AfxMessageBox和MessageBox区别

如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。   但是在WIN32 SDK的情况下只能使用MESSAGEBOX。MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox().afxmessagebox更多的时候是用于调试AfxMes

2015-07-27 16:29:55 1276

原创 gdb 调试利器

1. gdb 调试利器GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下工作的c++程序员,gdb是必不可少的工具;1.1. 启动gdb对C/C++程序的调试,需要在编译前就加上-g选项:$g++ -g hello.cpp -o hello调试可执行文件:$gdb

2015-07-27 14:43:21 1409

原创 堆排序详细分析(算法导论第六章)

本文将介绍另一种平均时间复杂度是O(nlogn)的排序方法——堆排序(Heap Sort)。堆排序使用了一种被称为“堆”的数据结构,这也是它相比其他两种排序方法的特殊之处。堆这种数据结构不仅可以用于排序,也可以用来维护优先级队列。本文最后还简要对比了快速排序和堆排序的优缺点。堆排序就是升级版的选择排序,选择排序基本就是两个for循环,内循环没循环一次确定列表中最小的元素,之后循环n次就

2015-07-23 16:50:20 1213

原创 动态规划入门教程之金矿的故事

----第一节----初识动态规划--------        经典的01背包问题是这样的:       有一个包和n个物品,包的容量为m,每个物品都有各自的体积和价值,问当从这n个物品中选择多个物品放在包里而物品体积总数不超过包的容量m时,能够得到的最大价值是多少?[对于每个物品不可以取多次,最多只能取一次,之所以叫做01背包,0表示不取,1表示取]        为了用一

2015-07-23 13:18:52 1475

原创 算法之七大经典排序

针对现实中的排序问题,算法有七把利剑可以助你马道成功。 首先排序分为四种:       交换排序: 包括冒泡排序,快速排序。      选择排序: 包括直接选择排序,堆排序。      插入排序: 包括直接插入排序,希尔排序。      合并排序: 合并排序。冒泡排序简单来说就是利用两个for循环来进行排序,由前一个数据和后一个数据比较,如果前一个大于后一个则交

2015-07-23 10:11:29 1463

转载 [刘未鹏]怎样花两年时间去面试一个人

By 刘未鹏– November 4, 2011Posted in: 学习方法, 未分类, 编程Joel Spolsky曾经感叹:招聘难,难于上青天(此处笔者稍加演绎:))。他有两个辛辣但不乏洞察力的断言:真正的牛人也许一辈子就投大概4次简历,这些家伙一毕业就被好公司抢走了,并且他们的雇主会给他们不赖的待遇,所以他们也不想挪窝。(刚刚去世的Dennis Ritchie就是这样一个人)而“人才”

2015-07-21 22:46:31 1373

原创 算法之概率思想

一:思想      这里主要讲一下“数值概率算法”,该算法常用于解决数值计算问题,并且往往只能求得问题的近似解,同一个问题同样的概率算法求解两次可能得到的结果大不一样,不过没关系,这种“近似解”会随时间的增加而越接近问题的解。 二:特征     现实生活中,有很多问题我们其实都得不到正确答案,只能得到近似解,比如“抛硬币”求出正面向上的概率,”抛骰子“出现1

2015-07-21 21:42:52 1469

原创 如何迅速匹配兄弟字符串

如果两个字符串的字符一样,但是顺序不一样,被认为是兄弟字符串,问如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。思路:判断各自素数乘积是否相等。方法一:1、判断两个字符串的长度是否一样。2、每个字符串按字符排序,如acb排序之后是abc,如果是兄弟字符串的话,排序之后是一样的。方法二:给26个字符依次赋予质数。质数是比较特殊的一堆数字,它们只能

2015-07-21 21:38:58 1590

原创 求一堆数中取出2个异或使得异或值大于某个数

思路 字典树 显然不能枚举所有的点求两两见的异或值, 我们知道表示为二进制时  当两数位不同时是其异或值才为1  ,由此可得到O(n)的算法,先将所有数存进字典树中(便于快速查询), 当用一个数去和其他数异或时,可直接根据贪心策略(尽量选不同的数位)得到最大异或值。代码1#includeint n,m;struct haha{ int next[3];

2015-07-21 21:32:16 2629

原创 算法之动态规划

一: 思想   首先要了解”动态规划“,必须先知道什么叫做”多阶段决策“,百科里面对这个问题解释的很全,我就load一段出来,大家得要好好品味,好好分析。 上面图中最后一句话就定义了动态规划是要干什么的问题。 二:使用规则    现在我们知道动态规划要解决啥问题了,那么什么情况下我们该使用动态规划呢?   ①  最优化原理(最

2015-07-21 20:28:47 1210

原创 对动态规划(Dynamic Programming)的理解:从穷举开始

动态规划(Dynamic Programming,以下简称dp)是算法设计学习中的一道槛,适用范围广,但不易掌握。笔者也是一直不能很好地掌握dp的法门,于是这个寒假我系统地按着LRJ的《算法竞赛入门经典》来学习算法,对dp有了一个比过往都更系统\更深入的理解,并在这里写出来与大家分享。笔者着重描述的是从穷举到dp的算法演进,并从中获取dp解法的思路,并给出多种思考的角度,务求解决的是LRJ

2015-07-21 18:53:35 2150

原创 动态规划之最长公共子序列

今天看了一下动态规划的思想,基本最基本的问题就是背包、硬币、lcs。lcs在解决字符串相似度上比较常用,属于算法中的基础,我还没有掌握,自己得有多么多么水呀,但没关系今天之后你掌握了,你就向成功程序员向前走了一步。动态规划      既然是经典的题目肯定是有优化空间的,并且解题方式是有固定流程的,这里我们采用的是矩阵实现,也就是二维数组。第一步:先计算最长公共子序列的长度。

2015-07-21 16:17:25 1201

原创 算法之回溯思想

1、概念      回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。   回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。     许多复杂的

2015-07-21 12:51:19 1370

原创 算法之分治思想

一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……任何一个可以用计算机求解的问题所需的计算时间都与其规模有

2015-07-20 22:44:02 1353

原创 算法之枚举思想

一: 思想     有时我们解决某个问题时找不到一点规律,此时我们很迷茫,很痛苦,很蛋疼,突然我们灵光一现,发现候选答案的问题规模在百万之内,此时我们就想到了从候选答案中逐一比较,一直找到正确解为止。 二: 条件     前面也说了,枚举是我们在无奈之后的最后一击,那么使用枚举时我们应该尽量遵守下面的两个条件。     ①   地球人都不能给我找出此

2015-07-20 20:55:33 1518

原创 算法之贪心思想

这个贪心的行为在算法中也成为了一种指导思想,也就是说贪心算法所作出的选择在当时的环境下是最好的,说深一点就是它只是某种意义上的局部最优解,但不一定是全局最优解,此时往往接近于最优解。 一: 优点     前面也说了,贪心只是求的当前环境下的最优解,而不是追究整体的最优解,所以贪心就避免了为求的整体最优解而枚举各种方案所耗费的时间。 二: 问题

2015-07-20 20:48:59 1297

原创 算法之递归思想

树的遍历的实现就是典型的递归思想。/** description:树的遍历示例,递归* 访问顺序:* 前序: 当前节点 - 左子树 - 右子树* 中序: 左子树 - 当前节点 - 右子树* 后序: 左子树 - 右子树 - 当前节点** write

2015-07-20 18:20:40 1244

原创 算法之递推思想

一: 概念     通过已知条件,利用特定关系逐步递推,最终得到结果为止,核心就是不断的利用现有信息推导出新的东西。 二:分类     当然递推中有两种,“顺推”和“逆推“     顺推:从条件推出结果。     逆推:从结果推出条件。三: 举例 顺推的例子      上过大学的应该都知道著名的“斐波那契”数列吧,说的是繁殖兔子的问题,题目我就大概说

2015-07-18 19:46:09 1436

原创 如何产生1-100 之间的100个不重复的随机数

1:首先从原始数组中随机选择一个数字,然后将该数字从数组中剔除,再随记选,再剔除,重复99次,就解决了。    我们知道从数组中剔除一个元素的复杂度为O(N),那么随机选取n个数字,它的复杂度就是O(N2)了。 2:用hash作为中间过滤层,因为在数组中,我们采用随机数的话,也许随机数在多次随机中可能会有重复,所以需要用hash来判断一下,    如果在hash中重复,则继续产生随

2015-07-18 19:39:04 6495

原创 爬虫小记--抓取过程简要分析

前段时间做一个产品,盈利方式也就是卖数据给用户,用wpf包装一下,当然数据提供方是由公司定向爬虫采集的,虽然在实际工作中没有接触这一块,不过私下可以玩一玩,研究研究。    既然要抓取网页的内容,肯定我们会有一个startUrl,通过这个startUrl就可以用广度优先的方式遍历整个站点,就如我们学习数据结构中图的遍历一样。既然有“请求网页”和“解析网页”两部分,在代码实现上,

2015-07-18 16:01:43 1891

原创 爬虫抓取时的几个小细节-缓存、编码、解析

一:网页更新     我们知道,一般网页中的信息是不断翻新的,这也要求我们定期的去抓这些新信息,但是这个“定期”该怎么理解,也就是多长时间需要抓一次该页面,其实这个定期也就是页面缓存时间,在页面的缓存时间内我们再次抓取该网页是没有必要的,反而给人家服务器造成压力。就比如说我要抓取博客园首页,首先清空页面缓存,从Last-Modified到Expires,我们可以看到,博客园的缓

2015-07-18 15:36:13 3538

原创 设计模式之单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意: 1、单例类只能有一个实例。2、单例类必须自己创建自己的唯

2015-07-18 14:49:00 1261

原创 菜鸟的mongoDB学习---(七)MongoDB 备份(mongodump)与恢复(mongorerstore)

MongoDB数据备份在Mongodb中我们使用mongodump命令来备份MongoDB数据。该命令可以导出所有数据到指定目录中。mongodump命令可以通过参数指定导出的数据量级转存的服务器。语法mongodump命令脚本语法如下: >mongodump -h dbhost -d dbname -o dbdirectory-h:MongDB所在服务器地址,例如

2015-07-16 19:35:14 1740

原创 如何在数据库中使用索引

多数数据库,使用 B 树(Balance Tree)的结构来保存索引。B 树,最上层节点:根节点最下层节点:叶子节点两者之间的节点:中间节点 B 树,显著特征:从根节点,到各个叶子节点的距离都是相等的。如此,检索任何值时,都经过相同数目的节点。 [sql] CREATE INDEX idx_lname_pinyin ON employee(lname_p

2015-07-16 19:12:15 1530

原创 菜鸟的mongoDB学习---(六)MongoDB 索引

MongoDB 索引ps:大概有半个月木有更新了,由于前一阶段的出差和这几天突然来的项目,导致上网时间急剧减少,实在是sorry,以后估计会好一点。索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这

2015-07-16 18:41:01 1488

原创 oracle时间数据格式的分析

在网上看见不少oracle新学者对oracle的时间格式很烦,经常是设计了一个带时间字段的表之后,向表插入数据失败。回想起自己刚开始学习oracle时,也对这个时间格式摸不着头脑,虽然是小小的问题,高手们不屑于讨论,但对初学者来讲,这也是一个不大不小的坎,没找到门路的话, 可能几天都过不去,其实就是一层窗户纸,没什么难的。这里做一个简单的小结,因水平有限,请高手补充指正。1 oracle对时间

2015-07-13 19:59:31 1382

原创 VC6 在使用VC助手(Visual AssistX)在Win7下不能使用↑↓←→及回车键选择的解决办法

VC6使用Visual AssistX版本的问题,换一个版本,如“Visual Assist X 10.8.2029”即可解决。http://pan.baidu.com/wap/shareview?&shareid=3343804032&uk=2032122079&dir=%2FWDK_7600&page=1&num=20&fsid=378361422774895&third=0

2015-07-13 14:56:54 3289

原创 设计模式之工厂模式

工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

2015-07-12 17:34:24 1328

原创 设计模式简介

设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代

2015-07-12 13:13:04 1747

原创 Hadoop的组成

如今Apache Hadoop已成为大数据行业发展背后的驱动力。Hive和Pig等技术也经常被提到,但是他们都有什么功能,为什么会需要奇怪的名字(如Oozie,ZooKeeper、Flume)。Hadoop带来了廉价的处理大数据(大数据的数据容量通常是10-100GB或更多,同时数据种类多种多样,包括结构化、非结构化等)的能力。但这与之前有什么不同?现今企业数据仓库和关系型数据库擅长处理结

2015-07-11 19:55:01 1591 1

原创 MFC界面库BCGControlBar的介绍

英文原文:http://www.bcgsoft.com/bcgcontrolbarpro.htmBCGControlBar是MFC的一个扩展库其英文全称是"Business Components Gallery ControlBar",它允许你去创建像完全自定义的像Microsoft Office 2000/XP/2003/2007/2010/2013 and  Visual Studio的界

2015-07-11 19:48:45 5105

转载 操作系统概念学习笔记 1 加电引导过程

操作系统概念学习笔记 1 加电引导过程加电-引导程序(bootstrap program)引导程序通常位于ROM或EEPROM中,引导程序必须定位操作系统内核并把它装入内存,接着操作系统开始执行第一个进程如init并等待事件的发生。简单来说即:1,电自检程序、2,自举装入程序、3,引导程序、4,操作系统流程图:linux系统为例:1、加电并且

2015-07-11 12:43:09 1525

原创 ubuntu全盘备份与恢复

备份:下面是我用来备份系统的完整命令:tar -jpcvf Ubuntu-12.04-20131018.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/Ubuntu-12.04-20131018.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/home /让我们来简单看

2015-07-10 13:22:05 1651

原创 因为好高骛远所以半途而废(张作作)

昨晚跟一位已经奋斗在工作岗位的朋友聊天,他总是一再表示羡慕还处在学生时代的我,我却恨不得挖出一颗赤诚的红心告诉他,我每天被看不完的书和写不完的论文压的喝口水都要喘半天,我才羡慕每天为生活奋斗而领着薪水的他。后来他说,我给你讲个笑话,我从小都以为全国只有清华和北大两所学校,小学升初中的时候,我一直纠结要去上清华还是去上北大,直到初中开学那天我妈带我去城西的一所学校报道,我才知道原来中国是有三所学

2015-07-10 10:03:49 1632

原创 BCG在程序中的使用

首先你电脑上是安装有BCG的,具体安装方法就是先双击安装程序,之后编译其中的两个工程,之后将其生成的.dll\.lib文件放入C++的include中这样就可以使用BCG的控件了。1. 在stdafx.h文件中添加头文件 #include2.在程序的APP中设置风格并cleanup,这里风格可以选择很多种,包括2003、2007、2010等。CBCGPVisualManager2007

2015-07-09 17:46:54 2414 1

原创 怒的背后(六六)

我连发两天微博,怒骂一切不合规矩和不讲道理的人。第一天说的是,巴黎戴高乐机场内,一名中国老人拿出国内惯用的吵闹政策,差点把人家值机柜台砸了,要求不是自己航空公司的值机柜台给自己办票,理由是“要迟到了”,他咆哮大厅的中文,让我羞得抬不起头。第二天说的是,回国以后第一次开车出行,就得怒路症,好想把那些随意变道插队不打方向灯的司机撂倒,太没家教,且让糟糕的城市交通

2015-07-08 23:13:51 2219 1

原创 第一次出差小记

第一次出差,同样也是第一次去南方,做了20几个小时的火车到达了江西,路过了几个我一直想去的城市,杭州、济南、南京、景德镇,从没想过有一天来过这么多的地方,虽然去的时候旅途很累,但在我乐观的心态下一切都过去了,也许旅途中有一些不愉快,但我同样表示理解,也许人生的旅途才刚刚开始,这次出差经历思考了一些事,也承认了一些事,一直和主任在一起吃、住什么的,主任思考的东西有时候还是很有深度的,远超过我这个刚毕

2015-07-08 23:13:02 1587

数电报告莫版

数电报告莫版

2012-07-12

数电课件科技

数电课件

2012-07-12

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

TA关注的人

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