算法设计与分析-枚举.pptVIP

  • 2
  • 0
  • 约小于1千字
  • 约 7页
  • 2022-04-22 发布于山东
  • 举报
枚举;问题描述;集合A:(元素从小到大排列) a1 a2 a3 a4 a5 a6 ……ai ……an 前i个元素构成的集合的子集总数:2i 第1小子集:{} 第2i-1+1小子集:{ai} 第2i-1+2小子集:{ai,a1} 第2i-1+3小子集:{ai,a2} 第2i-1+4小子集:{ai,a2,a1} 第2i-1+2j小子集:{ai,aj,……,a1}(j=i-1) ;归纳: 可以这么说: 1、前i个元素构成集合的第k小子集就是整个集合A的第k小子集 2、第2i-1+1~第2i小子集就是,前2i-1个子集,每个都添加ai元素;思路: 1、 对集合元素进行排序,小?大 2、确定第l小集合中最大的元素:2i-1l=2i 就是第i个数; 3、现在要确定第l小集合的第二个元素,只判断2j-1l-2i-12j的j取值,即第j个数; 2,3两步可以用位运算,if(k(1i)),l-1=kr 4、第三个元素也是一样…… 5、直到j=0,完全确定了第l小子集! 6、往下判断第l+1小子集,重复2~5; 7、直到确定第r小子集,结束啦! ;代码;算法复杂度

文档评论(0)

1亿VIP精品文档

相关文档