zoukankan      html  css  js  c++  java
  • 简单说明什么是递归?什么情况会使用?并使用java实现一个简单的递归程序。

    解答:

    1)递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。

    2)递归算法一般用于解决三类问题:

    a.数据的定义是按递归定义的。(Fibonacci(斐波那契)函数)

    b.问题解法按递归算法实现。(回溯)

    c.数据的结构形式是按递归定义的。(树的遍历,图的搜索)

    3).这是一个排列的例子,它所做的工作是将输入的一个字符串中的所有元素进行排序并输出,例如:你给出的参数是”abc” 则程序会输出: abc acb bac bca cab cba a.算法的出口在于:low=high也就是现在给出的排列元素只有一个时。 b.算法的逼近过程:先确定排列的第一位元素,也就是循环中i所代表的元素, 然后low+1开始减少排列元素,如此下去,直到low=high public class Foo {

    public static void main(String[] args) {

    permute(“abc”);

    }

    public static void permute(String str) {

    char[] strArray = str.toCharArray();

    permute(strArray, 0, strArray.length – 1);

    }

    public static void permute(char[] list, int low, int high) {

    int i;

    if (low == high) {

    String cout = “”;

    for (i = 0; i <= high; i++)

    cout += list[i];

    System.out.println(cout);

    } else {

    for (i = low; i <= high; i++) {

    char temp = list[low];

    list[low] = list[i];

    list[i] = temp;

    permute(list, low + 1, high);

    temp = list[low];

    list[low] = list[i];

    list[i] = temp;

    }

    }

    }

    }

  • 相关阅读:
    实战篇之实现 OutLook 中以 EDM 形式发送通知邮件
    ASP.NET MVC5 之路由器
    ASP.NET MVC5 之数据迁移
    说不出的烦
    ASP.NET MVC5 之 Log4Net 的学习和使用
    读取配置文件参数和文件路径
    序列化和反序列化示例
    面向对象之封装
    面向对象4之常用的乱七八糟
    面向对象三之继承和派生
  • 原文地址:https://www.cnblogs.com/borter/p/9548077.html
Copyright © 2011-2022 走看看