void printArray(unsigned int count, int* array){
for(int k = 0; k < count; k++)
printf("%d, ", *(array+k));
printf("\n");
}
void permutation(unsigned int count, int* array, unsigned int initial_count=0){
if(count == 1){
printArray(initial_count, array - initial_count + 1);
return ;
}
if(count > initial_count)
initial_count = count;
for(unsigned int k = 0; k< count; k++){
int hlp = array[0];
array[0] = array[k];
array[k] = hlp;
permutation(count-1, array+1, initial_count);
array[k] = array[0];
array[0] = hlp;
}
}
int _tmain(int argc, _TCHAR* argv[]){
int arro[] = {1, 2, 3, 4};
permutation(4, arro);
system("pause");
return 0;
}
Редактирано от Om_ на 25.09.08 15:02.