zoukankan      html  css  js  c++  java
  • 递归与迭代用法

    对于知根知底的东西可以用递归,不到万不得已,不推荐使用递归。如文件夹的层数,可以使用递归

    递归的效率很低的。递归是在操作栈(不断的出栈和进栈),这个比较耗资源。(汉诺塔问题就是使用递归,函数自己调用自己)

    ---->迭代:循环结构,递归:选择结构

    >>斐波那契数列,打印前40位的数字

    //迭代的实现

    public static void main(String[] args){

      int a[40];

      int a[0]=0;

      int a[1]=1;

      for(int $i=2;$i<40;$i++){

        a[$i]=a[$i-1]+a[$i-2];

      }

    }

    //递归的实现方式

    public int feb(int n){

      if(n<2)

        return n==0?0:1;

      return feb(n-1)+feb(n-2);

    }

    像求一个数的阶乘 如:(5!=5*4*3*2*1)

    int factorial(int n){

      if(n==0) return 1;

      return n*factorial(n-1);

    }

    >>折半查找递归的实现方式:

    /**

    *num要查找的数,pre要查找部分的开头,low要查找部分的结尾(时间复杂度:O(log2n))

    **/

    public static int cheakNum(int a[],int num,int pre,int low){
            
            int mid=(pre+low)/2;//指向数组的中间
            
            if(num>a[mid]){
                //num就在数组的后半部分
                pre=mid+1;
                return cheakNum(a, num, pre, a.length-1);

            }
            else if(num<a[mid]){
                //num在数组的前半部分
                low=mid-1;
                return cheakNum(a, num, 0, low);
            }else
                return mid;
            
        }

  • 相关阅读:
    gridview的应用(删除)
    Javascript无刷新TreeView
    利用GridView显示主细表并添加打开、关闭功能
    UpdatePanel 控件简介
    Asp.net中使用fckeditor在线编辑器配置
    C#实现水晶报表绑定数据并实现打印
    Asp.net 2.0 Treeview 动态填充,并实现无限级树
    SQL数据库建表前期优化
    C#发送Email邮件方法总结
    ASP.NET防SQL注入脚本程序
  • 原文地址:https://www.cnblogs.com/LvLoveYuForever/p/5742506.html
Copyright © 2011-2022 走看看