C#编程之经典算法——查找(四)
来源:互联网 发布:知乎 高跟鞋推荐 编辑:程序博客网 时间:2024/06/05 01:03
斐波那契查找(Fibonacci search)
原理与折半查找是一样的。只不过是通过斐波那契数列来划分查找区域的。
示例代码
附:斐波那契数列
斐波那契在《算盘书》中提出了一个有趣的兔子问题:
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对;
两个月后,生下一对小兔总数共有两对;
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;
……
依次类推可以列出下表:
经过月数0123456789101112幼仔对数001123581321345589成兔对数11123581321345589144总体对数1123581321345589144233
表中数字1,1,2,3,5,8---构成了一个序列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
斐波那契数列还有两个有趣的性质
1.斐波那契数列中任一项的平方数都等于跟他相邻的前后两项的乘积加1或减1;
2.任取相邻的四个斐波那契数,中间两数之积(内积)与两边两数之积(外积)相差1.
- C#编程之经典算法——查找(四)
- C#编程之经典算法——查找(一)
- C#编程之经典算法——查找(二)
- C#编程之经典算法——查找(三)
- C#编程之经典算法——查找(五)
- C#编程之经典算法——排序(四)
- C#编程之经典算法——递归过程(四)
- C#编程之经典算法——排序(一)
- C#编程之经典算法——排序(二)
- C#编程之经典算法——排序(三)
- C#编程之经典算法——排序(五)
- C#编程之经典算法——排序(六)
- C#编程之经典算法——排序(七)
- C#编程之经典算法——排序(八)
- C#编程之经典算法——排序(九)
- C#编程之经典算法——排序(十)
- C#编程之经典算法——排序(十一)
- C#编程之经典算法——排序(十二)
- C#学习笔记二 字符、字符串类
- Flex 遍历 ArrayCollection, Array
- 目前游戏行业内部主要几款游戏引擎的技术对比
- 使android:fillAfter="true"在xml中起作用
- Cxf:构建web service和发布web service
- C#编程之经典算法——查找(四)
- 使用不同的配置,利用Zend Framework时候,出现的问题
- 初试HTML5地图显示
- 给无光驱无软驱无底座不支持U盘启动的IBM 2662-L7J笔记本安装WIN XP的总结
- Windows 7下如何安装和配置IIS 7和ASP
- 一个功能强大的IDE能否让测试人员失业?
- 计算机网络面试题
- HTML 滚动条
- java文件上传下载