zoukankan      html  css  js  c++  java
  • 排列算法

    #include <stdio.h>
    #include 
    <time.h>

    void swap(int *a,int *b)
    {
        
    int temp=*a;
        
    *a=*b;
        
    *b=temp;
    }
    /************************************************************************/
    /* 算法:
    R={r1,r2,,rn},Ri=R-{ri};
    n=1,perm(R)=(r)
    n>1,perm(R)=(r1)perm(R1) + (r2)perm(R2) +  + (rn)perm(Rn)
    */
    /************************************************************************/
    void perm(int array[],int k,int m)
    {
        
    if (k==m)
        {
            
    for (int i=0;i<=m;i++)
            {
                printf(
    "%d,",array[i]);
            }
            printf(
    "\n");
        } 
        
    else
        {
            
    /*将array[km]中的每个元素和array[k]交换,再对array[k+1m]的元素进行排列
            
    */
            
    for (int i=k;i<=m;i++)
            {
                swap(
    &array[k],&array[i]);
                perm(array,k
    +1,m);
                swap(
    &array[k],&array[i]);
            }
        }
    }

    int main()
    {
        
    int array[10]={1,2,3,4,5,6,7};
        clock_t start
    =clock();
        perm(array,
    0,6);
        clock_t end
    =clock();

        printf(
    "times:%fs\n",((double)(end-start))/CLOCKS_PER_SEC);
        
    return 0;
    }
  • 相关阅读:
    docker中查看Jenkins administrator密码
    Http缓存机制
    Jenkins启动的两种方式
    git上传项目命令方式
    windows系统.ssh文件夹脚本创建id_rsa和id_rsa.pub
    python日期加减操作
    python xlrd
    断言框架
    接口测试工具
    fake stub mock
  • 原文地址:https://www.cnblogs.com/hustcat/p/1504038.html
Copyright © 2011-2022 走看看