- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 囧,这样也行……
<br /><br /><br />昨天和几个准备考研的同学聊到了MST,于是决定回去后重温一下经典之作:“Algorithms in C++ Part5: Graph Algorithms”。无奈看到Kruskal堆实现时间复杂度分析时,居然卡巴司机了。我怎么也觉得应该是E+XlgE而不是书上的E+XlgV。不过回过头来一想,Sedgewick大牛不会犯这种错误吧,而且我在书上也没有相关批注,说明以前在看到这里时是没有问题的。难道由于长期没碰算法变傻B了?<br />于是去
2010-11-05 00:04:00 600
原创 什么才叫真正的程序设计语言牛人?
<br />真正的语言牛人,狂热者,最近终于算见识了。群里经常看到有各种小朋友不厌其烦地问:学C++看哪本书比较好。看看下面这段引用吧:<br />The book is a strong reference for language purists (You know, those people on the newsgroups who quote from standards documents) or for someone implementing the STL (why?).<br />
2010-10-23 14:25:00 651
原创 二叉搜索树基本操作
<br /><br />左旋转:<br />左旋转要求当前节点的右子节点不为空。定义两个指针 x 、 y 分别指向当前节点及当前节点的右子节点。根据 x , y 进行下图所示变换(未带箭头的链为双向链):先处理 x 的右链,再处理 x 与 y 的链接。<br /><br /><br />之后的操作需要特别注意:<br />如果原 x 为树根,则变换后需要更新指向树根的入口指针为 y (可以考虑传引用);否则无需更新该指针,但需更新原 x 双亲节点的子节点链接为 y 。更新的时候需要注意是更新左子节点
2010-10-07 16:33:00 602
原创 LSGTL 1.0.6发布
<br />Download at: http://sourceforge.net/projects/lsgtl/files/<br /><br />Release Note:<br />* Improved method label of DisjointSet. <br />* Added an overload of function lcm to process ranges.<br />* Added function kmp.<br />* Rem
2010-07-10 15:54:00 507
原创 River Crossing解题报告
<br />题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1718<br /> <br /> 该题第一个需要考虑的便是收敛性问题,即是否有解(河岸(n+1)是否可达)。乍一看,这个问题似乎很难解决。想象一下用“万能”的暴力搜索法来解此题的情况,我们很可能在河岸0和河上的几个pole之间无限地递归搜索下去。目标甚至可以选择一直静止在河岸0上。这样的情形有点类似数学中“封闭”或“闭包”的概念:我们可以在闭包内无限循环,但永远也跳不出闭包的限制。类似地,
2010-07-04 22:09:00 651
原创 2010百度之星极其难得的AI资源数战平截图
说明中谈到了如果资源数同时达到1000时怎么处理。不过这一节被我直接略过了,心想这种小概率事件不可能发生吧。不过在我的PFS版小三和BFS版小三的PK过程中,小概率事件居然真的出现了。而且由于Prototype系列都是没有引入随机因素的AI,该情况稳定出现= =
2010-05-26 12:32:00 714
原创 Control What You Can Control
We are not gods, we can not control everything. We are individual persons. Though we can interact with other people around us and thus more or less affect their behaviours, what they thin
2010-05-12 22:38:00 943
原创 LSGTL 1.0.5发布
http://lsgtl.sourceforge.net/Release Note:Ver. 1.0.5 (5/2010)------------------------------* Updated method operator= of Vector to process self-assignment more efficiently* Introduced Se
2010-05-05 19:16:00 456
原创 自己实现的一个高效快速排序: )
最近准备把基础算法都高效地实现一遍,放入BaseAlgo.h中。大概LSGTL 1.05中会包含这个新的头文件吧。现在LSGTL已经越来越偏离纯粹的图算法库了,或许到1.05的时候都已经不再叫LSGTL了吧: ) 下面是和VC++ 9.0的std::sort的一个简单时间效率对比:5百万随机数据:quickSort 609msstd::sort 750ms5百万
2010-04-14 19:45:00 617
原创 CDynamicParameterAccessor避免内存泄漏的使用方法
由于ATL OLE DB基于方便性和效率上的考虑,并未遵循“谁申请,谁释放”的内存管理原则[1],因此在使用过程中应特别小心,否则就可能出现内存泄漏。下面讨论CDynamicParameterAccessor的使用。对于该类的使用,稍有不慎就会导致内存泄漏。 文章[2]中提到了CDynamicParameterAccessor的一种可能内存泄漏使用情形。对于该问题,除了可
2010-04-10 16:25:00 1038 1
原创 CMultipleResults的使用
CMultipleResults顾名思义,即多结果的意思。那么什么时候会出现多结果呢?考虑这样的语句command.Open(session, "SELECT Name FROM Students SELECT Degree FROM Lovers");该语句一次性执行了两条SQL查询命令,返回的结果自然有两个咯。CCommand的第三个模板参数TMultiple就用于决定对多结果的支
2010-04-09 19:37:00 729
原创 CCommand的资源管理方式
最近通过对ATL OLE DB源代码的进一步阅读,在验证了一些猜想的同时也发现了之前对CCommand资源管理方式的某些错误认识。这些认识上的错误可能隐式或显示地反映在了之前的相关博文中。为什么我会产生错误的认识呢?原因是我低估了CCommand的封装程度-_-!!!现将发现总结如下:1、若CCommand使用CAccessor,则在绑定返回结果时(调用Bind方法)会首先调用me
2010-04-08 00:14:00 950
原创 计算列相关问题的讨论
所谓计算列,即其值不是独立指定的,而是由其余列值计算出来的列。比如平均成绩就是一个典型的计算列。下面简单讨论下使用计算列过程中所需注意的一些问题。环境:SQL Server 2000,VC++ 2008 SP1,ATL OLE DB。 计算列可能在两种不同的情形中出现:一是出现在CREATE TABLE时列的定义里,一是出现在SELECT语句中。先讨论第一种情形。
2010-04-07 11:44:00 835
原创 CDynamicAccessor的应用
一直以来CAccessor都用得挺好,但今天突然遭遇到CAccessor的局限性了。不过好在发现了CDynamicAccessor这东西,用它解决了问题。 MSDN上说当你对目标数据源的结构,比如表的构成,很清楚时,使用CAccessor;当你对目标数据源不甚了解时则使用CDynamicAccessor。理论上讲,MSDN的说法是没有问题的,但我实在想象不出除了去hack
2010-04-06 20:20:00 1402
原创 CCommand::Open的bBind参数使用方法
CCommand::Open方法的bBind参数是个很重要的参数。它的作用到底是什么呢?通过实验,我得出了一些答案,现概括如下。 我们知道CCommand是通过rowset和数据库进行交互的。在执行一条SQL语句后,貌似需要将SQL的执行结果(如SELECT的结果)同rowset邦定起来,如此便可以从rowset中取得结果。而bBind参数的作用就是决定在执行完SQL后是
2010-04-05 15:42:00 1352 1
原创 使用者向导生成的几个关键方法简析
使用OLE DB进行数据库编程时,可以通过向导快速建立一个使用者(Consumer)。向导会自动生成一些方法。为了正确使用生成的使用者,弄清楚这些方法究竟做些什么是必要的。下面就对其中比较关键的几个做一个简单分析。(注:以下结论主要通过实验和阅读源代码得出,仅供参考。如有错误还望指正。) 首先我们需要明白一点,那就是在创建使用者时你把如下一些基本信息提供给了向导:欲连
2010-04-05 12:30:00 761
原创 LSGTL v1.0.2发布 : )
地址:http://sourceforge.net/projects/lsgtl/ 简要介绍:LSGTL means LLX’s Static Graph Template Library which is a light-weighted header-only template library developed mainly for static graph analys
2010-04-04 14:23:00 433
原创 命令释放与记录释放
在OLE DB的使用过程中,有几个关于释放的函数需要特别区分清楚,它们是:CCommand::Close、CCommand::ReleaseCommand以及CAccessorRowset::FreeRecordMemory。 当使用CCommand进行数据库访问时,有三样东西是需要的,即行集(Rowset)、结果集存取器(Result set accessor)以及
2010-04-04 13:43:00 779
Learn OLE DB Development with Visual C++ 6.0
2010-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人