斐波那契查找
来源:互联网 发布:java web后端 编辑:程序博客网 时间:2024/05/16 15:11
int F[10];
//斐波那契查找
int Fibonacci_Search(int *a, int n, int key)
{
int low, high, mid, i, k;
low = 1;//定义最低下标为记录首位
high = n;//定义最高下标为记录首位
k = 0;
while (n>F[k]-1)//计算n位于斐波那契数列的位置
{
k++;
}
for ( i = n; i < F[k]-1; i++)//把不满的数值补全
{
a[i] = a[n];
}
while (low<high)
{
mid = low + F[k - 1] - 1;//计算当前分隔的下标
if (key < a[mid])//如果查找记录小于当前分隔记录
{
high = mid - 1;//最高下标调整到分隔下标mid-1处
k = k - 1;//斐波那契数列下标减一位
}
else if (key > a[mid])//如果查找记录大于当前分隔记录
{
low = mid + 1;//最低下标调整到分隔下标mid+1处
k = k - 2;//斐波那契数列下标减两位
}
else
{
if (mid == n)
return mid;//相等了就说明mid是要查找到的位置
else
return n;
}
}
}
0 0
- 查找-斐波那契查找
- 算法--查找--斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 斐波那契查找
- 二分查找,插值查找,斐波那契查找
- 查找--顺序查找,二分法,斐波那契查找
- UIImagePickerController详解
- 深入理解java异常处理机制
- Android 5.0 模拟器 emulator无法启动
- spark峰会转训
- SQL Server数据库多种方式查找重复记录
- 斐波那契查找
- vs2010代码环境配色设置(c++)及除去中文注释的波浪线
- 音视频编码技术总结
- 【J2SE快速进阶】——递归算法
- python安装Django模块
- C# 从函数到委托
- oracle查看允许的最大连接数和当前连接数等信息
- 地址栏查看浏览器版本信息
- codeblocks +cygwin 开发c++及undefined reference to " "