随笔分类 -  算法设计与分析

王晓东(编著) 第二版 清华的大学出版社
算法作业:分治法求a的n次方
摘要:问题描述:分治的方法求an算法分析:如果 n 是偶数,可以分为 (an/2)*(an/2) 算法复杂度基本降低一半如果 n 是奇数,可以分为(an/2)*(an/2)*a 算法复杂度也基本降低一半如果 n == 1 ,则直接返回 a代码实现:#include<stdio.h>#include<math.h>intcalc(inta,intn){if(n==1)returna;if(n%2==0)returnpow(calc(a,n/2),2);returnpow(calc(a,(n-1)/2),2)*a;}intmain(){puts("Tocalculato 阅读全文

posted @ 2012-03-04 19:39 ma6174 阅读(8109) 评论(1) 推荐(0) 编辑

算法作业:求一个集合中所有子集元素之和
摘要:问题描述:求一个集合中所有子集元素之和。如{1,2,3,4,5,6,7,8,9,10……n}算法分析:由于集合中元素具有无序性, 所以集合中每个元素在子集中出现的次数是相同的。这样的话,问题就简单了,求所有子集元素的和就可以简化为求每个元素在子集中出现的次数*全集中所有元素的和。全集中所有元素的和好求,就是n*(n+1)/2。集合中任何一个元素出现的次数,比如1,我们可以这样来求:首先一个集合的子集个数是2n,这个都学过,我就不推导了。我们想求 1 出现 的次数,不好求,我们可以转化为求 1 不出现的次数,1 不出现的次数就是原来集合中除了元素 1 的元素的集合的子集个数。不明白??举个例子{ 阅读全文

posted @ 2012-03-03 10:35 ma6174 阅读(6535) 评论(0) 推荐(1) 编辑

导航

统计

点击右上角即可分享
微信分享提示