首页 > 代码库 > [转载]数组的全排列问题

[转载]数组的全排列问题

 申明:转自http://blog.csdn.net/wencheng2998/article/details/5971194
 1 #include <iostream>  2 using namespace std; 3 int cnt = 0;//累计全排列的总数 4  5  6 void swap(char *a, char *b) 7 { 8     int temp; 9     temp = *a;10     *a = *b;11     *b = temp;12 }13 //k表示从下表为k的元素开始排列,排列的范围k到m14 void perm(char list[], int k, int m)15 {16     int i;17     if (k == m)18     {19         for (i = 0; i <= m; i++)20         {21             cout << " " << list[i];22         }23         cout << endl;//没输出一组排序,输出一个换行符24         cnt++;25     }26     else27     {28         for (i = k; i <= m; i++)29         {30             swap(&list[k], &list[i]);31             perm(list, k + 1, m);32             swap(&list[k], &list[i]);33         }34     }35 }36 int main()37 {38     char list[] = "12345";39     perm(list, 0, 4);40     cout << "全排列的总数是:" <<cnt << endl;41     return 0;42 }

 

[转载]数组的全排列问题