首页 > 学院 > 开发设计 > 正文

全排列输出 递归算法

2019-11-17 03:07:48
字体:
来源:转载
供稿:网友

全排列输出 递归算法

早上刷微博的时候看到用程序输入全排列,一想发现自己没写过,不会,查资料吧。百度百科上的解释,总结一下就是将当前的Index与后面的Index依次替换,直到结束!

        //将数组中指定的下标交换位置        PRivate static void 交换(char[] charlist, int left, int right)        {            var m = charlist[left];            charlist[left] = charlist[right];            charlist[right] = m;        }        private static void 递归(char[] charlist, int index, int length)        {                if (index == length - 1)    //当访问到列表的最后时将当前的顺序输出            {                for (int i = 0; i < charlist.Length; i++)                {                    Console.Write(charlist[i]);                }                Console.WriteLine();            }            else            {                //访问列表                for (int i = index; i < length; i++)                {                    if (i != index)                    {                        交换(charlist, index, i);                    }                    递归(charlist, index + 1, length);                    if (i != index)                    {                        交换(charlist, index, i);                    }                }            }        }    


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表