摘要:所谓有素数筛选法,就是从2(最小的素数)开始往上进行筛选,把所有质数的整倍数都剔除掉,最后剩下来的就是素数了。当然这不是最好最快的方法,占用的空间也不小,不过这种方法简单易行,运行效率也不是太低——比起最普通的用函数判断每个数那也是天壤之别了,所以还是非常常用的。有一处优化:筛选i的倍数时,可以直接从i^2开始筛选,因为比i^2小的倍数已经被比i小的素数给筛选掉了,因为这样,外层循环也可以只累加到sqrt(n)即可。另外一个Re_storage函数将素数表进行转存,便于某些情况下的访问,prime_count保存素数的个数。C++ CODE:#define MAXNUM 10000bool p
阅读全文
摘要:刚看到位兄弟也贴了份KMP算法说明,但本人觉得说的不是很详细,当初我在看这个算法的时候也看的头晕昏昏的,我贴的这份也是网上找的。且听详细分解:KMP字符串模式匹配详解来自CSDN A_B_C_ABC网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一.简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){/*若串S中从第pos(S的下标0≤posS[0]!= S[1],S[1] != S
阅读全文
摘要:转自:http://hi.baidu.com/liziyun537/item/84fa271bf73cdf0be75c3660函数原型如下:#include TYPE accumulate( iterator start, iterator end, TYPE val );TYPE accumulate( iterator start, iterator end, TYPE val, BinaryFunction f );第一个原型用来计算变量val和容器中某个区间[start,end)元素之和。比如求某个数组所有元素之和:accumulate(&a[0],&a[n],0);
阅读全文
摘要:STL中list的使用 (转)转自:http://blog.163.com/lee_020/blog/static/12475560201227105822183/STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。文中所用到两个list对象c1,c2分别有元素c1(10,20,30)c2(40,50,60)。还有一个list::iterator citer用来指向c1或c2元素。list对象的声明构造():A. listc0;//空链表B. listc1(3);//建一个含三个默认值是0的元素的链表C. listc2(5,2);//建一个含五个元素的链表,值都是2
阅读全文
摘要:请您在阅读本文之前,先了解《高效程序员的45个习惯》-之二。每一期都会涉及15个话题,用3期来列出这45个习惯,每次不贪多,贪精,大家如果有空,一定要细细品味这15个习惯。注意:每一个好的习惯,开头都会相应有一个唱反调的句子哦。16 使用演示获得频繁反馈“客户不停的更改需求,导致我们严重地延期。他们一次就应该想清楚所有想要的东西,然后把这些需求给我们。”需求就像是流动着的油墨。你无法冻结需求,就像你无法冻结市场、竞争、知识、进化或者成长一样。就算你真的冻结了,也很可能是冻结了错的东西。不一致的术语是导致需求误解的一个主要原因。所以,需要维护一份项目术语表。人们应该可以公开访问它,一般是在wik
阅读全文
摘要:请您在阅读本文之前,先了解《高效程序员的45个习惯》-之一。每一期都会涉及15个话题,用3期来列出这45个习惯,每次不贪多,贪精,大家如果有空,一定要细细品味这15个习惯。注意:每一个好的习惯,开头都会相应有一个唱反调的句子哦。1 做事“出了问题,第一重要的是确定元凶,找到那个人!一旦证实了是他的错误,就可以保证这样的问题永远也不会再发生了。”指责不会修复bug,把矛头对准问题的解决办法,而不是人。这是真正有用处的正面效应。也许你不相信,但确实有些人常常不把解决问题放在最高优先级上。也许你也没有。先自我反省一下,当有问题出现时,“第一”反应究竟是什么?一个重大的错误应该被当作是一次学习而不是指
阅读全文
摘要:敏捷开发是当下最流行的开发方法,它采用的是一种以人为核心、迭代、循序渐进的开发思想,值得你关注和学习。最近我就阅读了一本有关敏捷开发的书籍,《高效程序员的45个习惯》。它以“举反例”的方式来讲述了敏捷开发中程序员应该运用的45个好习惯。本书涉及到的45个习惯是:1 做事2 欲诉则不达3 对事不对人4 排除万难,奋勇前进5 跟踪变化6 对团队投资7 懂得丢弃8 打破砂锅问到底9 把握开发节奏10 让客户做决定11 让设计指导而不是操纵开发12 合理地使用技术13 保持可发布14 提早集成,频繁集成15 提早实现自动化部署16 使用演示获得频繁反馈17 使用短迭代,增量发布18 固定的价格就意味着
阅读全文
摘要:vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分 ,为了使用vector 我们必须包含相关的头文件 :#include 使用vector有两种不同的形式,即所谓的数组习惯和STL习惯。一、数组习惯用法1. 定义一个已知长度的 vector :vector ivec( 10 ); //类似数组定义int ia[ 10 ];可以通过ivec[索引号] 来访问元素使用if ( ivec.empty() )判断是否是空,ivec.size()判断元素个数。2. vector的元素被初始化为与其类型相关的缺省值:算术和指针类型的缺省值
阅读全文