zoukankan      html  css  js  c++  java
  • 搜索旋转排序数组

    经过旋转后,根据中间元素分成两半,数组一半保持原来升序排序,另一半非有序。主要处理有序部分,判断target是否在这部分,不在的话,排除这部分的数组。

    通过是否满足有序的部分的条件,判断二分查找的区间

    class Solution {
        public int search(int[] A, int target) {
    int first = 0, last  = A.length;;
        while (first != last)
        {
            int mid = (first + last) / 2;
            if (A[mid] == target)
            {
                return  mid;
            }
    
            if (A[first] <= A[mid])
            {
                if (target < A[mid] && target >= A[first])
                    last = mid;
                else first = mid + 1;
            }
            else 
            {
                if (A[mid]<target&&target<=A[last-1])
                    first = mid + 1;
                else last = mid;
            }
        }
    
        return -1;
        }
    }
  • 相关阅读:
    构造函数
    时延(delay,latency)
    吞吐量
    带宽(band-width)
    单位
    bps
    比特(bit)
    速率
    C语言中的“>>”和“<<”
    C#中unit
  • 原文地址:https://www.cnblogs.com/ywqtro/p/12470296.html
Copyright © 2011-2022 走看看