算法
文章平均质量分 79
hh_xj
这个作者很懒,什么都没留下…
展开
-
图任务
在单源最短路径和所有对最短路径的问题中,每边(u, v)都有一权值w(u,v),如果图含有循环,且循环中所有边的权值之和小于0,那么能够到达这个循环的点,没有最短路劲,因为最短路径陷入了循环。如何检测负循环的存在很简单,可以结合在Bellman-Ford算法中,在最后对所有边(u,v),进行判断,如果d(v) >= d(u) + w(u, v),则图存在负循环。如果负循环存在,怎么找出其中最原创 2009-11-04 18:05:00 · 657 阅读 · 0 评论 -
两个个有趣的排序算法
算法导论在介绍了几个基础的排序算法之后,用决策树的形式,总结出基于比较的排序算法,O(nlgn)就是在渐进性上的最优实现。但之后还介绍了两个在最坏情况下,以线性时间完成的排序算法。当然,他们不基于关键值的比较。1,计数排序 (counting sort)计数排序的思想:假设元素的关键值取值在一个固定的范围中,然后对每个元素,统计所有关键值小于该元素关键值的元素个数(这就原创 2009-10-28 09:26:00 · 722 阅读 · 0 评论 -
算法的优化实现
这篇文章记录算法的C/C++实现中,应该注意的几个可以改进算法效率的地方1,提高cache利用率在中实现的快速排序算法,利用这点可以做很大的改进。void MySort::do_quick_sort(int l, int r){ if (l >= r) return; int b原创 2009-10-28 09:44:00 · 1428 阅读 · 0 评论 -
动态规划算法备忘
步骤1,满足dp算法的必要条件:最优子结构2,定义递归函数, 3,自底向上计算递归函数4,从计算过程保存的信息中,构造最优解的细节很多实际问题需要从所有可能的情况中找出所需要的情况,有时这没有公式,唯一的办法是搜索、穷举,而随着问题规模扩大,单纯的穷举耗费问题规模的指数时间,对于大规模的问题,即使用计算机解决也很不可取。当问题具有最优子结构时,相同原创 2009-10-28 09:50:00 · 961 阅读 · 3 评论 -
几个基础的排序算法
几个基础排序算法#include #include using namespace std;extern "C" {extern int rand_n(int, int);}template class MySort;template ostream & operator &);temp原创 2009-10-28 09:36:00 · 550 阅读 · 0 评论