zoukankan      html  css  js  c++  java
  • 计算机算法设计与分析<王晓东编著> 2-5有重复元素的排列问题

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int c = 0;
    
    
    int finish(char list[],int k,int i)
    {//第i个元素是否在前面元素[k...i-1]中出现过
        if(i>k)
        {
            for(int j=k;j<i;j++)
                if(list[j]==list[i])
                    return 0;
        }
        return 1;
    }
    template<typename T>
    void Perm(T arr[],int k,int m){
        if(k==m){
            c++;
            for(int i=0;i<=m;i++){
                cout<<arr[i];
            }
            cout<<endl;
        }
        else{
            for(int i=k;i<=m;i++){
                if(finish(arr,k,i)){
                    swap(arr[k],arr[i]);
                    Perm(arr,k+1,m);
                    swap(arr[k],arr[i]);
                }
            }
        }
    }
    
    int main()
    {
        char arr[4]={'a','c','c','a'};
        Perm(arr,0,3);
        cout<<c;
        return 0;
    }
  • 相关阅读:
    KafKa 发消息到Storm
    HBase的优化
    HBase部署与使用
    Scala 类
    Scala高阶函数
    模式匹配
    Scala数据结构
    scala基础语法
    Scala安装配置
    Kafka工作流程分析
  • 原文地址:https://www.cnblogs.com/Andre/p/12834781.html
Copyright © 2011-2022 走看看