中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java JDK 二分法 分析demo(推薦)

發布時間:2020-09-13 01:22:08 來源:腳本之家 閱讀:158 作者:jingxian 欄目:編程語言

如下所示:

public class Test
{

  public static void main(String[] args)
  {
    Long[] arr = new Long[100000];
    for(int i =0;i<100000;i++)
    {
      arr[i] = (long) i;
    }

    System.out.println(binarySearch(arr, 3L));
    
    Comparable midVal = (Comparable) 2L;;
    System.out.println(midVal.compareTo(2l));
  }

  private static int binarySearch(Long[] arr, long l)
  {
    return binarySearch0(arr,0,arr.length,l);
  }

  private static int binarySearch0(Object[] a, int fromIndex, int toIndex, Object key)
  {
    int low = fromIndex;
    int high = toIndex - 1;

    while (low <= high)
    {
      int mid = (low + high) >>> 1;
      Comparable midVal = (Comparable) a[mid];
      int cmp = midVal.compareTo(key);

      if (cmp < 0)
        low = mid + 1;
      else if (cmp > 0)
        high = mid - 1;
      else
        return mid; // key found
    }
    return -(low + 1); // key not found.
  }

}

算法:當數據量很大適宜采用該方法。采用二分法查找時,數據需是有序不重復的。 基本思想:假設數據是按升序排序的,對于給定值 x,從序列的中間位置開始比較,如果當前位置值等于 x,則查找成功;若 x 小于當前位置值,則在數列的前半段中查找;若 x 大于當前位置值則在數列的后半段中繼續查找,直到找到為止。

以上這篇Java JDK 二分法 分析demo(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长泰县| 龙海市| 玉山县| 利辛县| 泗阳县| 玉树县| 青岛市| 乌恰县| 扎赉特旗| 双江| 报价| 婺源县| 梁河县| 湘西| 平和县| 垦利县| 衡山县| 剑阁县| 娄底市| 巴东县| 苍梧县| 鲁山县| 阿尔山市| 罗城| 海口市| 金山区| 广西| 金乡县| 静安区| 彝良县| 江西省| 左云县| 安岳县| 化隆| 南康市| 秦皇岛市| 乐东| 桃园县| 东台市| 樟树市| 晋州市|