zoukankan      html  css  js  c++  java
  • 查找

    #include<iostream>
    using namespace std;
    int Search_Seq(int arr[],int arr_size,int key)//表数据从1开始到下标处,arr_size表示数组大小
    {
        int i;
        arr[0]=key;
        for( i=arr_size-1;i>0;i--)
        {
            if(arr[i]==key)
            {
                return i;
            }
        }
        return i;
    }
    static int F[100];
    
    void initF()
    {
        F[0]=0;
        F[1]=1;
        for(int i=2;i<100;i++)
        {
            F[i]=F[i-1]+F[i-2];
        }
    }
    
    int Search_Fibonacci(int arr[],int arr_size,int key)
    {
        int low=0;
        int index=0;
        while(arr_size>F[index]-1)
        {
            index++;
        }
        for(int i=arr_size-1;i<F[index]-1;i++)
        {
            arr[i]=arr[arr_size-1];
        }
        int high=F[index]-1-1;
        while(low<=high)
        {
            int mid=low+F[index-1]-1;
            if(arr[mid]==key)
            {
                if(mid<=arr_size-1)
                {
                    return mid;
                }
                else
                {
                    return -1;
                }
            }
            else if(arr[mid]<key) 
            {
                low =mid+1;
                index-=2;
    
            }else if(arr[mid]>key)
            {
                high=mid-1;
                index--;
            }
        }
        return -1;
    
    
    
    
    }
    
    
    
    
    int Search_Seq2(int arr[],int arr_size,int key)
    {
        arr[0]=key;
        int i=arr_size-1;
        while(arr[i]!=key)
        {
            i--;
        }
        return i;
    }
    int Search_Binary(int arr[],int arr_size,int key)
    {
        int low=0;
        int high=arr_size-1;
        int mid;
        while(low<=high)
        {
            mid=(low+high)/2;
            if(arr[mid]==key)return mid;
            if(arr[mid]<key) 
            {
                low=mid+1;        
            }
            if(arr[mid]>key)
            {
                high=mid-1;
            }
        }
        return -1;
    }
    
    
    int main()
    {
        initF();
    
    
        int arr[7]={11,44,67,78,89,132,434};
        cout<<Search_Fibonacci(arr,7,442);
        //cout<<Search_Seq(arr,7,3);
        //cout<<Search_Binary(arr,7,4331);
        //cout<<Search_Seq2(arr,7,119);
        getchar();
    
    }
  • 相关阅读:
    ASP标准控件的重要性
    jndi的疑惑 转
    jms中topic和queue的区别
    JNDI解析
    javascript document 对象属性(转)
    SAX解析xml全解
    java路径解析
    深度学习之美(张玉宏)——第三章 机器学习三重门
    centos7 源码编译安装 php
    centos7 源码编译安装 nginx
  • 原文地址:https://www.cnblogs.com/GW17195/p/5729589.html
Copyright © 2011-2022 走看看