平均起来,黄金分割法比二分搜索法快吗?

alphax 2006-02-15 11:02:45
目标问题是这样的,

有一个有序的整数数组
int nums[1..65536],他们的数值都不同,即nums[i] < nums[i+1] (i > 1 and i < 65536-1)
给定一个目标数t,要从nums查找它

我第一个问题,斐波那奇搜索法是否等同于黄金分割法
第二个问题,黄金分割法比二分搜索法平均比较的次数少吗,为什么?

我用斐波那奇搜索法测试了一下,平均比较次数要比二分搜索法多
...全文
1393 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2006-02-17
  • 打赏
  • 举报
回复
黄金分割本意 a+b=1, 求:a/b = b /(a+b)
他和折半不一样,折半可以计算出表达式
这个计算不出来表达式的

alphax 2006-02-17
  • 打赏
  • 举报
回复
>>理论上这种方法较高

我想知道的就是这个,为什么比较高?我以前看过一本书,提到过这个问题,可惜记不起来了
alphax 2006-02-17
  • 打赏
  • 举报
回复
明白了,黄金分割法的测试和这里的比较是两码事,黄金分割法里面是比较两个试验点孰优,
这里的比较是大小比较
寻开心 2006-02-16
  • 打赏
  • 举报
回复
1、二分查找法,最常用的方法,最少的次数为1次,最坏的情况是Log2(N+1)次(结果用进一法取整),即9次;
2、黄金分割法(0.618法),理论上这种方法较高,但其最坏的情况要比二分法查找的次数要多,最好的情况也与二分法差距很小,计算中一般不采用这种方法,因为它还需要额外负担许多运算。
黄金分割方法的分割点是两个:
一个是 0.5*(sqrt(5)-1) = 0.618
另外一个是 1-0.618
一个比折半法的0.5大,一个比它小。 收敛的速度快慢和被查找点的位置相关

一个例子代码:
http://dev.poptool.net/other/2005-11-19/0511190435.html

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧