zoukankan      html  css  js  c++  java
  • s1.0 力扣之二分查找法

    class BinarySearch
        {
            /// <summary>
            /// 查找方法
            /// </summary>
            /// <param name="nums">数据</param>
            /// <param name="target">目标值</param>
            /// <returns></returns>
            public int search(int[] nums, int target)
            {
                int len = nums.Length;
                int left = 0;
                int right = len - 1;
                //目标元素可能存在在区间 [left, right]
                while (left <= right)
                {
                    //推荐的写法是 int mid = left + (right - left) / 2;
                    int mid = (left + right) / 2;
                    if (nums[mid] == target)
                    {
                        return mid;
                    }
                    //如果中间小于目标
                    else if (nums[mid] < target)
                    {
                        // 目标元素可能存在在区间 [mid + 1, right]
                        left = mid + 1;
                    }
                    //如果中间大于目标
                    else
                    {
                        // 目标元素可能存在在区间 [left, mid - 1]
                        right = mid - 1;
                    }
                }
    
                return -1;
            }
        }

    在上图解:

     

  • 相关阅读:
    37.js----浅谈js原型的理解
    iOS
    iOS
    iOS
    python3
    ios
    iOS
    python3
    python3
    iOS
  • 原文地址:https://www.cnblogs.com/yzenet/p/15698058.html
Copyright © 2011-2022 走看看