• 输出一个数组的全排列


    命题:

    将一个数组的全排列输出,数据无素不重复(暂不考虑重复的情况.)

    如:定一个这样一个数

    int a[] = new a[4]{1,2,3,4};

    输出结果:

    1234
    1243
    1324
    1342
    1423
    1432
    2134
    2143
    2314
    2341
    2413
    2431
    3124
    3142
    3214
    3241
    3412
    3421
    4123
    4132
    4213
    4231
    4312
    4321

     我现在只是假定数组数据是1234,原理是一样的。实现程序如下:

    代码如下(C#):

    代码
     1         int count = 0;
     2         List<int> list = new List<int>();
     3         int Max = 4;
     4         private void CalcCycle()
     5         {
     6             if (list.Count == 4)
     7             {
     8                 string text = "";
     9                 for (int j = 0; j < Max; j++)
    10                 { text += list[j].ToString(); }
    11                 Console.WriteLine(text + "\r\n");
    12                 count++//总数+1
    13             }
    14             else
    15             for (int i = 0; i < Max; i++)
    16             {
    17                 int a = i + 1;
    18                 if (!list.Contains(a))
    19                 {
    20                     list.Add(a);
    21                     CalcCycle();
    22                     list.Remove(a);
    23                 }
    24             }
    25         }
  • 相关阅读:
    var、let、const
    面向女朋友自我介绍
    ES6——class
    一个错误引发的——对异步回调与for循环(小白错误,大神勿进)
    关于this
    关于作用域
    HTML5 8
    HTML5 7
    HTML5 6
    HTML5 4
  • 原文地址:https://www.cnblogs.com/benwu/p/1690404.html
Copyright © 2020-2023  润新知