java递归算法入门小结(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/50219729

    **  java递归问题小结** 对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。       在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。 关键要抓住的是: (1)递归出口 (2)逐步向出口逼近 下面举一些常用的例子 1 如 1+2+3+4+5+.......100      /**      * 下面的算法是算1+2+3+……的      * @param num      * @return      */     public static long sum(int num) {         if (num > 0) {             return num + sum(num - 1); // 调用递归方法         } else {             return 0; // 当num=0时,循环结束         }     } 2         /**      * 下面的算法是算1+1/2+1/3+……;      * @param n      * @return      */     public static double add(int n){         if(n==1){             return 1.0/1;         }         else{             return 1.0/n + add(n-1);         }     } 3          /**      * 下面的算法是算1*2*3*.......      * @param input      * @return      */     public static double multiplication(long input){         if(input==1){             return 1;         }else{             return input*multiplication(input-1);         }     } 4 Fibonacci数列:1,1,2,3,5,8,13……   要求:找出数列中指定index位置的数值    private static long fab(int index) {           if (index == 1 || index == 2) {               return 1;           } else {               return fab(index - 1) + fab(index - 2);           }       }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小红豆的数据分析

小蛇学python(6)python实现经典排序算法并可视化分析复杂度

排序算法在算法界是一个怎么样的存在?就好像在学术界中数学的地位,说直接用好像用不上,可是不会做起事情来总会捉襟见肘,左支右绌。找工作的时候,有的面试官甚至会让我...

23120
来自专栏我是攻城师

为什么快速排序算法效率比较高?

快速排序算法是非常高效的一个排序算法,在众多的排序算法里面其无论在时间复杂度还是空间复杂度都是比较低的。因此作为一个程序员,我们很有必要学习和理解快排的原理。

2.9K30
来自专栏轮子工厂

设计模式(四) | 简历复印与原型模型不得不说的一些事

7930
来自专栏C语言及其他语言

[每日一题]偶数求和

题目描述 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足...

29750
来自专栏C/C++基础

网易游戏技术岗在线编程题(二)

小v今年有n门课,每门都有考试,为了拿到奖学金,小v必须让自己的平均成绩至少为avg。每门课由平时成绩和考试成绩组成,满分为r。现在他知道每门课的平时成绩为ai...

13820
来自专栏xingoo, 一个梦想做发明家的程序员

大整数乘法

                                                                                ...

24450
来自专栏HTML5学堂

算法之旅 | 冒泡排序法

HTML5学堂-码匠:本期继续走入算法 —— 冒泡排序法。冒泡排序算法相对简单,容易上手,稳定性也比较高, 算是一种较好理解的算法,也是面试官高频提问的算法之一...

42090
来自专栏青青天空树

成绩大排队

其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

9220
来自专栏一个爱吃西瓜的程序员

每天学习一点儿算法--快速排序

快速排序是一种常用的优雅的排序算法,它使用分而治之的策略。 那么分而治之(D&C)是一种怎样的策略呢? 分而治之 分而治之(D&C)的要点只有两个: 找出简单...

31740
来自专栏落影的专栏

程序员进阶之算法练习(十七)

前言 正文6道题目来自leetcode––为求职为生的编程网站,目的是工作闲暇之时锤炼代码功底。 如何从这篇文章受益? 先看题目大意,对照Example的样...

45890

扫码关注云+社区

领取腾讯云代金券