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


     申明:转自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到m
    14 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     else
    27     {
    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 }
  • 相关阅读:
    103
    101
    102
    100
    ByteView和Sink
    二叉排序树删除、搜索、插入的迭代实现
    怎样就地反转单链表?
    有序单链表的合并
    有序数组的合并
    静态表之整型数组的插入、删除、查找
  • 原文地址:https://www.cnblogs.com/-rfq/p/5924787.html
Copyright © 2020-2023  润新知