全排列

    全排列问题:

#include <iostream>
using namespace std;

void Swap( char &p, char &q)
{
         char temp;
  temp = p;
  p        = q;
  q        = temp;        
}

void Permutation( char list[], int k, int n)
{
         if(k==n){
         // 输出这一个排列结果
     for( int i=0; i<n; i++){
         cout<<list[i]<< " ";
    }
    cout<<endl;
         }
         // 对于某个位置的元素,其排列即为其在范围k到n之间位置的交换
     for( int i=k; i<n; i++){
         Swap(list[k], list[i]);
                Permutation(list, k+1, n);
                Swap(list[k], list[i]);
    }
}


int main( int argc, char *argv[])
{
   char list[] = {'a','b','c','d','e'};
  Permutation(list, 0, sizeof(list)/sizeof( char));
   return 0;
}

你可能感兴趣的:(职场,休闲,Beginner)