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相加:
     
    什么情况下使用递归?
    比如你遍历文件夹时,有子目录就一直遍历 直到没了

    我是代码搬运工!!!
  • 相关阅读:
    Ubuntu中遇到Unable to lock the administration directory
    Ubuntu使用脚本安装Docker
    Linux shell 批量运行jmeter脚本
    clip原理
    模块化定义JS,让统一文件夹内相同的变量不冲突
    JS中的this都有什么作用?
    jQ中prop与attr的区别
    ;(function( $, window, undefined ){ }(jQuery,window))为何需要往里面传$,window,undefined这些参数
    Asp.Mvc中的text实现 辅助用户输入 灰色字体
    C#List的排序和简单去重总结
  • 原文地址:https://www.cnblogs.com/FanKL/p/13999963.html
Copyright © 2011-2022 走看看