为了账号安全,请及时绑定邮箱和手机立即绑定

一个算法问题

一个算法问题

LEATH 2018-11-01 05:15:33
也是面试题,如何生成从1~n这n个数的所有的排列。。。我没想明白,有谁能指点一下?
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

private static void Permutation(List<int> v, int m, int n)
        {
            int i;
            if (m < n - 1)
            {
                Permutation(v, m + 1, n);
                for (i = m + 1; i < n; i++)
                {
                    Swap(v, m, i);
                    Permutation(v, m + 1, n);
                    Swap(v, m, i);
                }
            } 
            else
            {
                foreach (int vs in v)
                {
                    Console.Write(vs);
                }
                Console.Write("\r\n");
            }
        }

        private static void Swap(List<int> v, int m, int i)
        {
            int t;
            t = v[m]; v[m] = v[i]; v[i] = t;
        }

调用方法:

List<int> v = new List<int> { 1, 2, 3};
Permutation(v, 0, 3);


查看完整回答
反对 回复 2018-11-05
  • 2 回答
  • 0 关注
  • 456 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信