c语言实现斐波那契查找代码

代码语言:c

所属分类:算法

代码描述:c语言实现斐波那契查找代码

代码标签: 斐波 那契 查找

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#include <stdio.h>  
#include <stdlib.h>  
#define MAXN 20  

/*
*产生斐波那契数列
* */
void Fibonacci(int *f)
{
    int i;
    f[0] = 1;
    f[1] = 1;
    for (i = 2; i < MAXN; ++i)
        f[i] = f[i - 2] + f[i - 1];
}

/*
* 查找
* */
int Fibonacci_Search(int *a, int key, int n)
{
    int i, low = 0, high = n - 1;
    int mid = 0;
    int k = 0;
    int F[MAXN];
    Fibonacci(F);
    while (n > F[k] - 1)          //计算出n在斐波那契中的数列  
        ++k;
    for (i = n; i < F[k] - 1; ++i) //把数组补全  
        a[i] = a[high];
    while (low <= high)
    {
        mid = low + F[k - 1] - 1;  //根据斐波那契数列进行黄金分割  
        if (a[mid] > key)
        {
            high = mid - 1;
            k = k - 1;
        }
        else if (a[mid] < key)
        {
.........完整代码请登录后点击上方下载按钮下载查看

网友评论0