算法与分析上的原题
void Perm( int list[],int k,int m ){
//产生list[k:m]的所有排列
if( k > m ){
for( int i = 0; i <= m ; i ++ )
cout << list[i] ;
cout << endl;
}
else
for( int i = k; i <= m; i ++ ){
Swap( list[k],list[i] );
Perm( list, k + 1, m );
Swap( list[k],list[i]);
}
}
void Swap( int &a,int &b ){
int temp = a;
a = b;
b = temp;
}