zoukankan      html  css  js  c++  java
  • 斐波那契查找

    斐波那契查找又称为黄金比例分割查找,

    大家记不记得斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…….(从第三个数开始,后边每一个数都是前两个数的和)

    然后我们会发现,随着斐波那契数列的递增,前后两个数的比值会越来越接近0.618,利用这个特性,我们就可以将黄金比例运用到查找技术中。

    黄金比例又称黄金分割,是指事物各部分间一定的数学比例关系,即将整体一分为二,较大部分与较小部分之比等于整体与较大部分之比,其比值约为1:0.618或1.618:1。

    0.618被公认为最具有审美意义的比例数字,这个数值的作用不仅仅体现在诸如绘画、雕塑、音乐、建筑等艺术领域,而且在管理、工程设计等方面也有着不可忽视的作用。因此被称为黄金分
    割。

     

    1

     

     

    如何实现

    如何实现斐波那契查找,可以参考这篇CSDN博客,里面的代码写的很详尽。

    我需要补充的一点是,并不一定非得左边是F[k-1]-1,右边是F[k-2]-1,也可以反过来,如果反过来的话只需要修改几行代码就OK了

    把这一段改成

    1.  int mid=low+F[k-1]-1;  
    2.     if(key<temp[mid])  
    3.     {  
    4.       high=mid-1;  
    5.       k-=1;  
    6.     }  
    7.     else if(key>temp[mid])  
    8.     {  
    9.      low=mid+1;  
    10.      k-=2;  
    11.     }  

    如下:

     1  int mid=low+F[k-1]-1;  
     2     if(key<temp[mid])  
     3     {  
     4       high=mid-1;  
     5       k-=1;  
     6     }  
     7     else if(key>temp[mid])  
     8     {  
     9      low=mid+1;  
    10      k-=2;  
    11     }  

    这样就可以反过来了。

     

  • 相关阅读:
    微信小程序入门实例
    textarea 的value值以及演示
    Think php (TP5) 批量删除全部源码
    Think php TP5 CURD 增删改查全部源码
    TP5 Think php 批量添加全部源码
    centos7 supervisor管理redis
    Centos7 设置redis开机自启
    Centos7安装gearman和php扩展
    nginx-403
    FFmpeg-截取视频图片
  • 原文地址:https://www.cnblogs.com/limera/p/Fibonacci.html
Copyright © 2011-2022 走看看