11 2012 档案

摘要:ACE(Adaptive Communication Environment),它是一个面向对象的、跨平台的、开放源码的网络编程基础设施框架。 ACE 是由加利福尼亚大学Irvine分校的Douglas C.Schmidt 博士主导开发的,是一种跨平台可编译的网络编程API,并随后在工业界中发展、完善,它将底层的不同系统的细节透明化,为开发者提供统一的接口,从而可在不同系统上相互移植,提高代码利用率。与传统的网络编程相比,它更加规范化,极力避免工业开发中人们常会出现的错误情况,从而提高了程序的可靠性和易用性,并且拥有较高的性能优势。 读者可以从http://www.cs.wustl.edu/. 阅读全文
posted @ 2012-11-30 20:46 MichaelGD 阅读(623) 评论(0) 推荐(0)
摘要:本题为编程之美中的第2.7题,上面的解法比辗转相除发的时间复杂度要小很多。看完之后用while循环代替了递归重写了一下。废话少说,上源码: 1 #include <iostream> 2 using namespace std; 3 4 int GDC(unsigned long long x, unsigned long long y) 5 { 6 unsigned long long deep = 1; 7 while(y != 0) 8 { 9 if (x < y)10 {11 x ^= y;12 ... 阅读全文
posted @ 2012-11-28 15:56 MichaelGD 阅读(389) 评论(0) 推荐(0)
摘要:1、概述 并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、基本操作 并查集是一种非常简单的数据结构,它主要未来解决如下两种经常性操作而产生的,分别为: A. 合并两个不相交集合 B. 判断两个元素是否属于同一个集合(经常性)(1)合并两个不相交集合 合并操作很简单:先设置一个数组Father[x],表示x的“父亲”的编号。那么,合并两个不相交集合的方法就是,找到其中一个集合最父亲的父亲(也就是最久远的祖先),将另外一个集合的最久远的祖先的父亲指向它。上图为两个不相交集合... 阅读全文
posted @ 2012-11-28 15:47 MichaelGD 阅读(446) 评论(0) 推荐(0)
摘要:这道题目所说的出现最多的几个数值,其实是带有附加条件的: 这几个数值中出现次数最少的那个数,要比除这几个值外的其他数的总个数要多。(说的自己都有点晕-_-!)这样才能在最后结果中,呈现这几个数。所以必须按照数据源中的统计量分析出求前几位的数值。其代码如下: 1 #include <iostream> 2 #include <hash_map> 3 using namespace std; 4 5 void Find(int data[], int length, hash_map<int, int>& hMap,int id_count) 6 { 7 阅读全文
posted @ 2012-11-23 22:23 MichaelGD 阅读(512) 评论(0) 推荐(0)
摘要:这是一道很普遍和基础的题目,有很深的扩展性。一、首先,第一反应往往会想到快速排序后,再输出K个元素,但是时间复杂度为O(N*logN/log2) + O(K) = O(N*logN/log2)。 另外一种做法是,通过冒泡排序选出K个最大的出来,它的时间复杂度为O(N*K)。 这就要比较K < logN/log2 ? K : logN/log2 来取舍算法了,但是这些都不是比较好的办法。二、那么,进一步化简: 快排的过程是找到随机数,将它固定到最终位置,将数据按大小分组,重复递归下去,直到最后排好序,是一种分治的思想。 所以,我们可以找到第k个数的位置(由大到小排序),从而减少了查找交换次 阅读全文
posted @ 2012-11-21 19:35 MichaelGD 阅读(456) 评论(0) 推荐(0)
摘要:公司布置了一个任务让写一个决策树,以前并未接触数据挖掘的东西,但作为一个数据挖掘最基本的知识点,还是应该有所理解的。 程序的源码可以点击这里进行下载,下面简要介绍一下决策树以及相关算法概念。 决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测(就像上面的银行官员用他来预测贷款风险)。从数据产... 阅读全文
posted @ 2012-11-14 23:00 MichaelGD 阅读(7321) 评论(0) 推荐(0)
摘要:这是一道比较传统的面试题,自己写了个10进制的求1个数的程序,后来在《编程之美》中发现上面的解法更好一些,随后有用它的方法重写了一遍2进制下的求解方法。 程序源码请点击这里下载。 对于自己写的10进制程序:主要思想还是从前期的分析得出来的: 1、先统计N的相应位置所对应的累加和数组 2、从前到后,根据所当前位置对应的位数,进行累加,即: 1)当当前为为1时,当前位置所对应的单位个数+低位数值+1; 2)当当前为为0时,用当前位置的数值*当前位置为所对应的1的单位总个数+低位数值; 3、求出当前位总和后,向下一位移位,递归累加 程序主要源码如下: 1 long long... 阅读全文
posted @ 2012-11-14 17:36 MichaelGD 阅读(233) 评论(0) 推荐(0)
摘要:转自:http://www.blogjava.net/zhenandaci/category/31868.html(一)SVM的简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[1 阅读全文
posted @ 2012-11-13 20:01 MichaelGD 阅读(193) 评论(0) 推荐(0)
摘要:来源 http://www.blogjava.net/zhenandaci/category/31868.html?Show=All文本分类入 门(一)文本分类问题的定义文本分类系列文章,从文本分类问题的定义开始,主要讲解文本分类系统的构成,主流的统计学习方法以及较为优秀的SVM算法及其改进。 一个文本(以下基本不区分“文本”和“文档”两个词的含义)分类问题就是将一篇文档归入预先定义的几个类别中的一个或几个,而文本的自动分类则是使用计算机程序来实现这样的分类。通俗点说,就好比你拿一篇文章,问计算机这文章要说的究竟是体育,经济还是教育,计算机答不上就打它的屁屁(……)。注意这个定义当中着重强调的 阅读全文
posted @ 2012-11-13 20:00 MichaelGD 阅读(293) 评论(0) 推荐(0)
摘要:这是一道企业面试中,经常会被问到的面试题目。在网上看到一些此题的实现,其中有两种方法是比较适合编程的。本项目的源代码,请点击这里下载。方法一: 此方法是根据二叉树的DFS查找并标记祖先,根据递归出栈的原理,找到公共祖先。 其主要代码如下: 1 #include <iostream> 2 #include <list> 3 #include "LinerLCA.h" 4 5 //DFS左右子树,查找pNode是否存在 6 /*@param pRoot 根节点 7 /*@param pNode 需要查找的节点 8 /*@param path pNode所 阅读全文
posted @ 2012-11-12 19:27 MichaelGD 阅读(580) 评论(0) 推荐(0)
摘要:一、nutch 介绍(来自百度百科) Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。尽管Web搜索是漫游Internet的基本要求, 但是现有web搜索引擎的数目却在下降. 并且这很有可能进一步演变成为一个公司垄断了几乎所有的web搜索为其谋取商业利益.这显然不利于广大Internet用户. Nutch为我们提供了这样一个不同的选择. 相对于那些商用的搜索引擎, Nutch作为开放源代码搜索引擎将会更加透明, 从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外, 有的.. 阅读全文
posted @ 2012-11-11 22:20 MichaelGD 阅读(728) 评论(0) 推荐(1)