zoukankan      html  css  js  c++  java
  • 冒泡排序、递归

    一.冒泡排序
      比较相邻的元素。如果第一个比第二个大,就交换他们两个。
            对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最 后的元素应该会是最大的数。
             针对所有的元素重复以上的步骤,除了最后一个。
             持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
    二、递归
    递归算法是一种直接或间接地调用自身算法的过程。
     1)把规模大的问题转化为规模小的相似的子问题来解决,反复执行的过程(调用自身)
     2)有跳出反复执行过程的条件(递归出口)
    递归结构包括两个部分:
    1、定义递归头。解答:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。
    2、递归体。解答:什么时候需要调用自身方法。
    递归的缺陷
    简单的程序是递归的优点之一。但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多是速度要比循环慢的多,所以在使用递归时要慎重。
    阶乘的递推公式为:factorial(n)=n*factorial(n-1)
    public static long factorial(int n) throws Exception { if (n < 0) throw new Exception("参数不能为负!"); else if (n == 1 || n == 0) return 1; else return n * factorial(n - 1); }
    //递归算法 契数列 兔子总数分别为:1、1、2、3、5、8、13
    //3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    递归从1到100相加:
     
    什么情况下使用递归?
    比如你遍历文件夹时,有子目录就一直遍历 直到没了

    我是代码搬运工!!!
  • 相关阅读:
    maven scope取值
    HashMap 解析
    MySQL中int(M)和tinyint(M)数值类型中M值的意义
    PyCharm 快捷键
    js 闭包,原型链,作用域链
    阿拉伯数字转中文大写金额JS(JavaScript方法)
    JSch
    Java面试点 -【笔记】
    tomcat Connector配置项 参数优化说明
    QRCanvas 示例使用
  • 原文地址:https://www.cnblogs.com/FanKL/p/13999963.html
Copyright © 2011-2022 走看看