zoukankan      html  css  js  c++  java
  • 数据结构——折半查找

    采用线性方式进行折半查找:

    Binary_Search(int arr[],int key,int lowIndex,int upperIndex)
    {
        int middleIndex = 0;
        while(lowIndex <= upperIndex)
        {
            middleIndex = lowIndex + (upperIndex - lowIndex) / 2;
            if(arr[middleIndex] == key)
            {
                return middleIndex;
            }
            if (key > arr[middleIndex])
            {
                lowIndex = middleIndex + 1;
            }
            else
            {
                upperIndex = middleIndex - 1;
            }
        }
    
        return -1;
    }

    采用递归方式进行折半查找:

    Binary_Search_Recursive(int arr[],int key,int lowIndex,int upperIndex)
    {
        if (lowIndex <= upperIndex)
        {
            int middleIndex = lowIndex + (upperIndex - lowIndex) / 2;
            if(arr[middleIndex] == key)
            {
                return middleIndex;
            }
            else if(arr[middleIndex] < key)
            {
                lowIndex = middleIndex + 1;
                Binary_Search_Recursive(arr,key,lowIndex,upperIndex);
            }
            else
            {
                upperIndex = middleIndex - 1;
                Binary_Search_Recursive(arr,key,lowIndex,upperIndex);
            }
        }
        else
        {
            return -1;    
        }
    }
  • 相关阅读:
    iOS开发UI篇—字典转模型
    使用python编写批量卸载android应用的脚本
    CircularProgressBar
    Custom-Progress-Dialog-Android
    picasso jar
    swift
    Python编程
    H264分析工具
    Android Websites
    AnATools
  • 原文地址:https://www.cnblogs.com/PerfectSoft/p/2711079.html
Copyright © 2011-2022 走看看