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;
    }
  • 相关阅读:
    作业4
    PSP记录个人项目耗时
    代码复审
    是否需要有代码规范?
    作业二(1)
    作业二(2)
    作业一
    软件工程学期总结
    作业4
    作业3(PSP表格)
  • 原文地址:https://www.cnblogs.com/Andre/p/12834781.html
Copyright © 2011-2022 走看看