递归——单词全排列

本文探讨了如何使用递归实现单词的全排列,详细解释了递归的基本概念和注意事项,并通过实例展示了如何通过递归生成任意长度单词的所有字母组合,同时也讨论了递归效率的问题。
摘要由CSDN通过智能技术生成

      递归是编程技术中常用的一种技术,就是方法是支持自己调用自己,在面对过程编程中已经有了递归的接触,像斐波那契序列的求解等这些都是可以用递归来解决的。java方法是支持嵌套调用方法不支持嵌套定义。

       使用递归需要注意以下几点:1 递归需要一个基值情况,其意思是导致递归的返回而没有再一次递归调用。2 第一个递归都需要有终止条件。以防止无限递归下去,可能由此引发程序崩溃。以上两点是在递归调用中特别需要注意的两个环节。

      使用的递归的情况很多,比如说数学归纳法,数列求和等。接下来使用递归实现单词的全排列。任意给一个单词,输出所有该单词的字母组合。例如输入一个单词有5个字符,那么全排列一共有5*4*3*2*1=120种排列组合。这个可以用递归来实现。

      通常如果按照比较直接的想法就是采用分步乘法原理来实现单词全排列。采用for循环方式:例如用户输入四个字符长度的单词,输出所有该单词的字符全排列组合。

public class WholeShowWordNotRecursiveApp {
   

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WholeShowWorldNotRecursive a=new WholeShowWorldNotRecursive();

    }

}
class WholeShowWorldNotRecursive
{
    //不采用递归的方法对单词进行全排列
    private char[] arr=new char[100];
    private int size=0;
    private String s=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值