<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Jacky的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u012654462</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012654462]]></copyright><item><title><![CDATA[【分治法】最接近点对问题]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/38119771</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/38119771</guid><author>u012654462</author><pubDate>Fri, 25 Jul 2014 15:48:55 +0800</pubDate><description><![CDATA[问题场景：在应用中，常用诸如点、圆等简单的几何对象代表现实世界中的实体。在涉及这些几何对象的问题中，常需要了解其邻域中其他几何对象的信息。例如，在空中交通控制问题中，若将飞机作为空间中移动的一个点来看待，则具有最大碰撞危险的2架飞机，就是这个空间中最接近的一对点。这类问题是计算几何学中研究的基本问题之一。

      问题描述：给定平面上n个点，找其中的一对点，使得在n个点的所有点对中，该点]]></description><category></category></item><item><title><![CDATA[C++的函数重载]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/37922411</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/37922411</guid><author>u012654462</author><pubDate>Fri, 18 Jul 2014 09:48:23 +0800</pubDate><description><![CDATA[——每个现象后面都隐藏一个本质，关键在于我们是否去挖掘
写在前面：
函数重载的重要性不言而明，但是你知道C++中函数重载是如何实现的呢（虽然本文谈的是C++中函数重载的实现，但我想其它语言也是类似的）？这个可以分解为下面两个问题

1、声明/定义重载函数时，是如何解决命名冲突的？（抛开函数重载不谈，using就是一种解决命名冲突的方法，解决命名冲突还有很多其它的方法，这里就不论述了）2、当]]></description><category></category></item><item><title><![CDATA[堆和栈的区别]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/37884909</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/37884909</guid><author>u012654462</author><pubDate>Wed, 16 Jul 2014 20:58:39 +0800</pubDate><description><![CDATA[堆和栈究竟有什么区别？
    主要的区别由以下几点：
    1、管理方式不同；
    2、空间大小不同；
    3、能否产生碎片不同；
    4、生长方向不同；
    5、分配方式不同；
    6、分配效率不同；
    管理方式：对于栈来讲，是由编译器自动管理，无需我们手工控制；对于堆来说，释放工作由程序员控制，容易产生memory leak。
    空间大小：]]></description><category></category></item><item><title><![CDATA[C语言中volatile关键字的作用]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/37884459</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/37884459</guid><author>u012654462</author><pubDate>Wed, 16 Jul 2014 20:21:08 +0800</pubDate><description><![CDATA[一.前言

1.编译器优化介绍：

由于内存访问速度远不及CPU处理速度，为提高机器整体性能，在硬件上引入硬件高速缓存Cache，加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行，没有相关性的指令可以乱序执行，以充分利用CPU的指令流水线，提高执行速度。以上是硬件级别的优化。再看软件一级的优化：一种是在编写代码时由程序员优化，另一种是由编译器进行优化。编译器优化常用的]]></description><category></category></item><item><title><![CDATA[C语言的编译链接过程详解]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/24592925</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/24592925</guid><author>u012654462</author><pubDate>Sun, 27 Apr 2014 16:38:09 +0800</pubDate><description><![CDATA[学过C语言的人都应该知道，我们所编辑的C语言程序是不能直接放到机器上运行的，它只不过是一个带".c"后缀的文件（也称为源代码）而已，需要经过一定的处理才能转换成机器上可运行的可执行文件。我们将对C语言的这种处理过程称为编译与链接。


编译就是把文本形式源代码翻译为机器语言形式的目标文件过程。


链接是把目标文件、操作系统的启动代码和用到的库文件进行组织最终形成可执行代码的过程。编译]]></description><category></category></item><item><title><![CDATA[C/C++程序内存布局]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/24426457</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/24426457</guid><author>u012654462</author><pubDate>Thu, 24 Apr 2014 17:36:48 +0800</pubDate><description><![CDATA[为什么需要知道C/C++的内存布局和在哪可以可以找到想要的数据？知道内存布局对调试程序非常有帮助，可以知道程序执行时，到底做了什么，有助于写出干净的代码。本文的主要内容如下：

源文件转换为可执行文件可执行程序组成及内存布局数据存储类别一个实例总结
源文件转换为可执行文件
源文件经过以下几步生成可执行文件：

1、预处理（preprocessor）：对#include、#define、]]></description><category></category></item><item><title><![CDATA[Bloom Filter概念和原理]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/23429991</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/23429991</guid><author>u012654462</author><pubDate>Fri, 11 Apr 2014 10:59:51 +0800</pubDate><description><![CDATA[Bloom Filter概念和原理
焦萌 2007年1月27日
 
Bloom Filter是一种空间效率很高的随机数据结构，它利用位数组很简洁地表示一个集合，并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的：在判断一个元素是否属于某个集合时，有可能会把不属于这个集合的元素误认为属于这个集合（false
 positive）。因此，Bloom Filter]]></description><category></category></item><item><title><![CDATA[STL容器：set/map/multiset/multimap 与hash_set/hash_map/hash_multiset/hash_multimap]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/23426127</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/23426127</guid><author>u012654462</author><pubDate>Fri, 11 Apr 2014 10:11:52 +0800</pubDate><description><![CDATA[本文第一部分、从set/map谈到hashtable/hash_map/hash_set，简要介绍下set/map/multiset/multimap，及hash_set/hash_map/hash_multiset/hash_multimap之区别(万丈高楼平地起，基础最重要)，



第一部分、从set/map谈到hashtable/hash_map/hash_set

    稍]]></description><category></category></item><item><title><![CDATA[堆排序及其分析]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/22400337</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/22400337</guid><author>u012654462</author><pubDate>Fri, 28 Mar 2014 14:36:44 +0800</pubDate><description><![CDATA[前言
记得在学习数据结构的时候一味的想用代码实现算法，重视的是写出来的代码有一个正确的输入，然后有一个正确的输出，那么就很满足了。从网上看了许多的代码，看了之后貌似懂了，自己写完之后也正确了，但是不久之后就忘了，因为大脑在回忆的时候，只依稀记得代码中的部分，那么的模糊，根本不能再次写出正确的代码，也许在第一次写的时候是因为参考了别人的代码，看过之后大脑可以进行短暂的高清晰记忆，于是欺骗了我，以为]]></description><category></category></item><item><title><![CDATA[排序算法性能分析]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/22293231</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/22293231</guid><author>u012654462</author><pubDate>Thu, 27 Mar 2014 15:34:57 +0800</pubDate><description><![CDATA[一、基于比较的排序算法

1.插入排序法

直接插入排序，希尔排序，不常用的：Tree sort；Library sort：Patience sorting

2.交换排序

冒泡排序，快速排序，不常用的：鸡尾酒排序，奇偶排序

3.选择排序

直接选择排序，堆排序

4.归并排序

归并排序

二、不基于比较的排序算法

基数排序，桶排序

三、空间，]]></description><category></category></item><item><title><![CDATA[网络爬虫基本原理(二)]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21743785</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21743785</guid><author>u012654462</author><pubDate>Fri, 21 Mar 2014 21:03:38 +0800</pubDate><description><![CDATA[四、更新策略
    互联网是实时变化的，具有很强的动态性。网页更新策略主要是决定何时更新之前已经下载过的页面。常见的更新策略又以下三种：
    1.历史参考策略
    顾名思义，根据页面以往的历史更新数据，预测该页面未来何时会发生变化。一般来说，是通过泊松过程进行建模进行预测。
    2.用户体验策略
    尽管搜索引擎针对于某个查询条件能够返回数量巨大的结果，但是用户往往只关]]></description><category></category></item><item><title><![CDATA[网络爬虫基本原理(一)]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21743739</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21743739</guid><author>u012654462</author><pubDate>Fri, 21 Mar 2014 21:02:45 +0800</pubDate><description><![CDATA[网络爬虫是捜索引擎抓取系统的重要组成部分。爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份。这篇博客主要对爬虫以及抓取系统进行一个简单的概述。
一、网络爬虫的基本结构及工作流程
    一个通用的网络爬虫的框架如图所示：

    网络爬虫的基本工作流程如下：
    1.首先选取一部分精心挑选的种子URL；
    2.将这些URL放入待抓取URL队列；
  ]]></description><category></category></item><item><title><![CDATA[C语言中scanf/fscanf 的%[]和%n说明符的使用方法]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21408571</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21408571</guid><author>u012654462</author><pubDate>Mon, 17 Mar 2014 21:19:02 +0800</pubDate><description><![CDATA[#include "Stdio.h"
#include "Conio.h"

int main(void)
{
char *str1;

scanf("%[^\n]",str1);
printf("%s",str1);

  getch();
  return 0;
}

该方法解决输入字符串时默认空格为结束字符的问题。“scanf("%[^\n]",str1);”表示]]></description><category></category></item><item><title><![CDATA[C语言通配符]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21408365</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21408365</guid><author>u012654462</author><pubDate>Mon, 17 Mar 2014 21:12:32 +0800</pubDate><description><![CDATA[%a,%A 读入一个浮点值(仅C99有效) 　　 
%c 读入一个字符 　　 
%d 读入十进制整数 　　 
%i 读入十进制，八进制，十六进制整数 　　 
%o 读入八进制整数 　　 
%x,%X 读入十六进制整数 　　 
%s 读入一个字符串，遇空格、制表符或换行符结束。 　　 
%f,%F,%e,%E,%g,%G 用来输入实数，可以用小数形式或指数形式输入。 　　 
%p 读]]></description><category></category></item><item><title><![CDATA[socket阻塞与非阻塞，同步与异步、I/O模型]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21389737</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21389737</guid><author>u012654462</author><pubDate>Mon, 17 Mar 2014 15:19:42 +0800</pubDate><description><![CDATA[1. 概念理解




     在进行网络编程时，我们常常见到同步(Sync)/异步(Async)，阻塞(Block)/非阻塞(Unblock)四种调用方式：
同步：
      所谓同步，就是在发出一个功能调用时，在没有得到结果之前，该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。



例如普通B/S模式（同步）：提交请求->等待服务器处理->处理]]></description><category></category></item><item><title><![CDATA[细说Cookie]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21254271</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21254271</guid><author>u012654462</author><pubDate>Fri, 14 Mar 2014 21:45:15 +0800</pubDate><description><![CDATA[阅读目录

开始Cookie 概述Cookie的写、读过程使用Cookie保存复杂对象Js中读写CookieCookie在Session中的应用Cookie在身份验证中的应用Cookie的安全状况如何在C#发请的请求中使用Cookie重构与使用总结补充



Cookie虽然是个很简单的东西，但它又是WEB开发中一个很重要的客户端数据来源，而且它可以实现扩展性很好的会话状态， 所以我认]]></description><category></category></item><item><title><![CDATA[HTTP协议详解]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21247721</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21247721</guid><author>u012654462</author><pubDate>Fri, 14 Mar 2014 19:53:44 +0800</pubDate><description><![CDATA[当今web程序的开发技术真是百家争鸣，ASP.NET, PHP, JSP，Perl, AJAX 等等。 无论Web技术在未来如何发展，理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解，内容较多，希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT]]></description><category></category></item><item><title><![CDATA[正则表达式30分钟入门教程]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21240159</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21240159</guid><author>u012654462</author><pubDate>Fri, 14 Mar 2014 16:07:51 +0800</pubDate><description><![CDATA[本文目标如何使用本教程正则表达式到底是什么东西？入门测试正则表达式元字符字符转义重复字符类分枝条件反义分组后向引用零宽断言负向零宽断言注释贪婪与懒惰处理选项平衡组/递归匹配还有些什么东西没提到联系作者网上的资源及本文参考文献更新纪录

本文目标

30分钟内让你明白正则表达式是什么，并对它有一些基本的了解，让你可以在自己的程序或网页里使用它。

如何使用本教程

最重要的是——请给]]></description><category></category></item><item><title><![CDATA[MFC中自定义消息]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21095655</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21095655</guid><author>u012654462</author><pubDate>Wed, 12 Mar 2014 15:52:45 +0800</pubDate><description><![CDATA[消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄，可当我们需要完成其它的任务，需要自定义消息，
就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息，所以我们必须手动在程序中添加相应代码，以便可以象处理其它消息一样处理自定义消息。

自定义消息的步骤如下：
（1）建立Single Document的MFC Applica]]></description><category></category></item><item><title><![CDATA[Socket的阻塞模式和非阻塞模式]]></title><link>https://blog.youkuaiyun.com/u012654462/article/details/21084115</link><guid>https://blog.youkuaiyun.com/u012654462/article/details/21084115</guid><author>u012654462</author><pubDate>Wed, 12 Mar 2014 12:29:51 +0800</pubDate><description><![CDATA[阻塞模式

　　Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下，在I/O操作完成前，执行的操作函数一直等候而不会立即返回，该函数所在的线程会阻塞在这里。相反，在非阻塞模式下，套接字函数会立即返回，而不管I/O是否完成，该函数所在的线程会继续运行。

在阻塞模式的套接字上，调用任何一个Windows Sockets API都会耗费不确定的等待时间。图所示，在调用re]]></description><category></category></item></channel></rss>