博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
递归--变位数(练习)
阅读量:6243 次
发布时间:2019-06-22

本文共 1001 字,大约阅读时间需要 3 分钟。

 

即abc输出abc,acb,bac,bca,cab,cba

思路:先以非递归方式,完成部分

public static void Rotate(char[] str){    var length = str.Length;    int i = 1;    for (int j = 0; j < length; j++)    {                foreach (var item in str)        {            Console.Write(item);        }        Console.WriteLine();        char temp = str[0];        //move left        for (i = 1; i < length; i++)        {            str[i - 1] = str[i];        }        str[i - 1] = temp;    }}

得到结果是abc,bca,cab

每个数右边的n-1个数可以进行排列abc,acb.实际上就是对bc进行Rotate.

递归退出点就是输出点

public static void Rotate(char[] str,int pos){    var length = str.Length;    if (pos == (length - 1))    {        foreach (var item in str)        {            Console.Write(item);        }        Console.WriteLine();        return;    }     int i = 1;    for (int j = pos; j < length; j++)    {        Rotate(str, pos+1);        char temp = str[pos];        for (i = pos + 1; i < length; i++)        {            str[i - 1] = str[i];        }        str[i - 1] = temp;    }}

未完

转载地址:http://gjsia.baihongyu.com/

你可能感兴趣的文章
点灯笼
查看>>
try{}catch{}
查看>>
[Aaronyang] 写给自己的WPF4.5 笔记11[自定义控件-AyImageButton的过程 1/4]
查看>>
Linux VMware新添加网络适配器找不到配置文件问题
查看>>
Javascript百学不厌 - this
查看>>
机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
查看>>
实用算法实现-第 14 篇 启发式搜索
查看>>
c#常用的排序算法
查看>>
论文阅读——Visual inertial odometry using coupled nonlinear optimization
查看>>
Office插件编程[转]
查看>>
读代码还是读文档,来自知乎
查看>>
Linux 常见编译错误
查看>>
ASP.NET MVC 3 Controller
查看>>
Vs中调试MVC源代码步骤
查看>>
JavaScript项目重构到底有多少坑要填要踩
查看>>
footer绝对定位但是不在页面最下边解决方案
查看>>
Oil Deposits(油田)(DFS)
查看>>
Android 画图(自定义坐标轴控件的拖动实现)
查看>>
在Linux下配置git并设置远程仓库
查看>>
[解题报告]499 - What's The Frequency, Kenneth?
查看>>