![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 70
rainsbaby
这个作者很懒,什么都没留下…
展开
-
贪心算法简单实现
没有排序,因为考虑到排序要花的时间也挺多,不比这种直接寻找法快多少。 void select( int s[], int f[], int f0) { int ff = 18+1;//the biggest finishing time+1 int flag = 0; for( int i=0; i if( s[i]>=f0 && f[i] { flag = i; ff=f[i]原创 2012-10-18 21:05:49 · 613 阅读 · 0 评论 -
算法导论22.2-6:好选手、坏选手问题
Q:有两种类型的职业摔跤选手:一种是好“选手”,一种是坏“选手”。对于任意一对摔跤职业选手来说,他们中可能有,也可能没有比赛。假定有n位摔跤职业选手,并且有一份清单,上面列出了r对参加比赛的摔跤手。试给出一个o(n+r)时间的算法,它能否确定是否指定某些摔跤手为好选手,而将余下的摔跤手指定为坏选手,从而使得每一场比赛都是在一个好选手与一个坏选手之间进行。如果有可能做出这样的指定,你的算法就应该将它原创 2012-11-20 21:46:51 · 2902 阅读 · 0 评论 -
【算法Ⅰ~Ⅳ(C++实现)】习题3.1 寻找int float double能表示的最大最小值
包含头文件limits.h numeric_limits::max() 求某数据类型的最大值(min()则求最小值) 浮点数的最小值是能表示的最小正数 cout.setf( ios::showbase|ios::uppercase ); cout ::min() ::min() << endl; cout.unsetf( ios::hex );原创 2013-01-12 21:42:43 · 1663 阅读 · 0 评论 -
算法导论15.4-6:最长单调递增子序列
参考资料: 《编程之美》2.16 http://blog.pfan.cn/rickone/13086.html http://chriszeng87.iteye.com/blog/1054321 题目:给出一个O(nlogn)的算法,使之能够找出一个n个数的序列中最长的单调递增子序列。 O(n2)的比较好理解,没有仔细研究,研究了下O(nlogn)的解答和好多大神的分析才原创 2012-11-20 21:43:47 · 5692 阅读 · 2 评论 -
判断一个单向链表上是否有环
判断一个单向链表上是否有环的方法有哪些呢? 方法1:用一个指针数组A,存储已访问过的节点。用一个指针p,每次在链表上移动一步,然后与指针数组A比较,若数组中没有指针与p相同,说明第一次访问p,将p放入数组中;若有指针与p相同,则存在环路,且第一次相同的节点就是环的入口点。 链表长度为n,则需要空间o(n),且每次要与指针数组比较,时间复杂度为 O(n^2)。 方法2:在节点上原创 2013-09-02 20:36:47 · 1391 阅读 · 0 评论