zoukankan      html  css  js  c++  java
  • 递归算法及优化

     1 package interview;
     2 //有一个斐波那契数列计算的函数,最前面的k个数为1,后面的没一位是前k位之和,例如k=4,该函数
     3 //该函数返回值为1,1,1,1,4,7,13,25,49
     4 public class RecursiveOptimize {
     5     static int  fib_k(int n,int k) {
     6          if(n<k) 
     7             return 1;
     8          int result = 0;
     9          for(int i=0;i<k;i++){
    10              result += fib_k(n-i-1,k);
    11          }
    12          return result;
    13     }
    14     static int fib_k_optimize(int n,int k) {
    15         if(n<k)
    16             return 1;
    17         int[] fib = new int[n+1];
    18         for(int i=0;i<k;i++){
    19             fib[i]=1;
    20         }
    21         for(int i=k;i<=n;i++) {
    22             int result = 0;
    23             for(int j=0;j<k;j++){
    24                 result += fib[i-j-1];
    25             }
    26             fib[i]=result;
    27         }
    28         return fib[n];
    29     }
    30     public static void main(String[] args) {
    31         long start = System.nanoTime();
    32         for(int i=0;i<20;i++){
    33             System.out.print(fib_k(i,4)+" ");
    34         }
    35         long end = System.nanoTime();
    36         System.out.println("
    "+(end-start));
    37         
    38         //===================================
    39         start = System.nanoTime();
    40         for(int i=0;i<20;i++){
    41             System.out.print(fib_k_optimize(i,4)+" ");
    42         }
    43         end = System.nanoTime();
    44         System.out.println("
    "+(end-start));
    45     }
    46     
    47 }
    When things go wrong,don't go with them.
  • 相关阅读:
    【zZ】OpenCV HOGDescriptor 参数图解
    [C]遍历目录下所有文件
    drawing
    转:基于用户投票的排名算法系列
    编码格式
    泛型
    接口
    隐藏方法不能实现多态性
    结构
    静态
  • 原文地址:https://www.cnblogs.com/yqy921/p/5570851.html
Copyright © 2011-2022 走看看