速度暴快的组合生成算法

原创 2007年10月05日 17:41:00

 

   近日在维普数据库里看资料,偶然发现了一个介绍组合生成算法的文章,照着算法流程,自己写了一下,发现速度果然不错。

C++实现代码:

#include <cstdlib>
#include 
<iostream>

using namespace std;

void  combination( int n, int m ){
      
int   *A=new int[n+1];
      
int   *B=new int[m+1];
      
int   i, j;
      
for( i=1; i<=n; ++i )
           A[i]
=i;
      
for( i=1; i<=m; ++i )
           B[i]
=m;
      
while( B[1]<n ){
             
for( i=1; i<=m; ++i )
                  cout
<<A[i]<<" ";
             cout
<<endl;
             j
=m;
             
while( B[j]==n )
                    
--j;
             
++B[j];
             
for( i=j+1; i<=m; ++i )
                  B[i]
=B[j];
             swap( A[j], A[B[j]] );
      }

      delete []A;
      delete []B;
}

      
int main(int argc, char *argv[])
{
    combination( 
204 );
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}

 

           

相关文章推荐

组合生成算法

上学期在离散课上学到的基于字典序的组合生成算法,在这里整理一下: 目的: 集合1~n已经确定,已知当前组合,按照字典序生成下一个组合; 1.所有组合都是按字典序升序排列; 2.每个组合内部元素...

近两年跟踪速度较快的算法

  • 2016年12月06日 10:55
  • 6.43MB
  • 下载

近两年跟踪速度较快的算法小结

近两年跟踪速度较快的算法小结

近两年跟踪速度较快的算法总结

  • 2015年03月25日 15:09
  • 1.25MB
  • 下载

检索速度最快的哈希算法和map

  • 2014年02月05日 12:09
  • 151KB
  • 下载

Genymotion目前速度最快的Android模拟器+ova包

安装 注册 1.首先访问Genymotion注册页面  https://cloud.genymotion.com/page/customer/login/?next=/ 2.在注...

近几年跟踪速度较快的算法

  • 2017年02月06日 13:34
  • 261KB
  • 下载

最快的TIN三角网生成算法

  • 2011年06月27日 15:24
  • 769KB
  • 下载

QuickLZ -- 一个号称世界压缩速度最快的压缩库

QuickLZ -- 一个号称世界压缩速度最快的压缩库 分类: C/C++ 2010-03-08 10:47 7727人阅读 评论(2) 收藏 举报 compressio...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:速度暴快的组合生成算法
举报原因:
原因补充:

(最多只允许输入30个字)