
算法
文章平均质量分 66
Truther
这个作者很懒,什么都没留下…
展开
-
自己实现的一个高效快速排序: )
最近准备把基础算法都高效地实现一遍,放入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 · 630 阅读 · 0 评论 -
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 · 665 阅读 · 0 评论 -
红黑树的一个C实现
参考CLRS完成的实现原创 2010-10-07 16:15:00 · 574 阅读 · 0 评论 -
二叉搜索树基本操作
<br /><br />左旋转:<br /> 左旋转要求当前节点的右子节点不为空。定义两个指针 x 、 y 分别指向当前节点及当前节点的右子节点。根据 x , y 进行下图所示变换(未带箭头的链为双向链):先处理 x 的右链,再处理 x 与 y 的链接。<br /><br /><br />之后的操作需要特别注意:<br /> 如果原 x 为树根,则变换后需要更新指向树根的入口指针为 y (可以考虑传引用);否则无需更新该指针,但需更新原 x 双亲节点的子节点链接为 y 。更新的时候需要注意是更新左子节点原创 2010-10-07 16:33:00 · 620 阅读 · 0 评论 -
并行快速排序
如果不是多核心计算机,那就算了吧......原创 2010-10-07 16:26:00 · 687 阅读 · 0 评论 -
囧,这样也行……
<br /><br /><br />昨天和几个准备考研的同学聊到了MST ,于是决定回去后重温一下经典之作:“Algorithms in C++ Part 5: Graph Algorithms ”。无奈看到Kruskal 堆实现时间复杂度分析时,居然卡巴司机了。我怎么也觉得应该是E+XlgE 而不是书上的E+XlgV 。不过回过头来一想,Sedgewick 大牛不会犯这种错误吧,而且我在书上也没有相关批注,说明以前在看到这里时是没有问题的。难道由于长期没碰算法变傻B 了?<br />于是去原创 2010-11-05 00:04:00 · 606 阅读 · 0 评论