Java二分查詢的使用
java中的二分查詢
具體程式碼如下
import java.util.ArrayList; import java.util.List; public class binarySearch { public binarySearch(){ List<Integer> list=new ArrayList<Integer>(); for(int i=0;i<10000;i+=2){ //往list加入逐漸增大1-10000的所有偶數,作為實驗陣列,很明顯,他是有序的! list.add(i); //這裡當然也可用陣列 } int low=0; int high=list.size(); int key=3334; while(low<=high){ int mid=(low+high)/2; if(key==list.get(mid)){ System.out.println("此數值在list中的位置為:"+mid); break; } if(key>list.get(mid)){ low=mid+1; //當小於時,是low指標向後移動,high指標不變 } if(key<list.get(mid)){ high=mid-1; //當大於時,是high指標向前移動,low指標不變 } } if(low>high){ System.out.println("沒有查到結果!"); } } }
相關推薦
java 二分查詢演算法
Java實現的二分查詢演算法 二分查詢又稱折半查詢,它是一種效率較高的查詢方法。 折半查詢的演算法思想是將數列按有序化(遞增或遞減)排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點
java---二分查詢法
/** * 二分查詢法 * 注: 陣列元素必須有順序 * */ public class sort4 { public static void main(String[] args) { int [] arr ={1,2,3,4,5,6,7,8}; int a = binary
java二分查詢
描述: 適用於 有序的 順序表 程式碼: public static int binarySearch(Integer[] srcArray, int des) { //定義初始最小、最大索引 int low = 0;
java二分查詢,折半查詢演算法
二分查詢是一個較為簡單的查詢演算法.要求所查資料集合必須為有序的.也因此,註定了這種資料結構在插入方面的xing效能很差(因為要移動引用位置,騰出空間來,在javali裡面,由於資料存的是引用.所以影響不大); 具體思路是: 在一個有序集合中,確定中間位置的值middleI
[Leetcode] 11. 盛最多水的容器 java 二分查詢
給定 n 個非負整數 a1,a2,...,an,每個數代表座標中的一個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。 說明:你不能傾斜容
Java二分查詢小例子
Java二分查詢--迴圈,遞迴 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; impor
java二分查詢的遞迴實現
遞迴:方法可以呼叫自己 編寫遞迴程式碼時有一下三點: 遞迴總有一個最簡單的情況——方法的第一條語句總是一個包含return的條件語句。 遞迴呼叫總是去嘗試解決一個規模更小的子問題,這樣遞迴才能收斂到最簡單的情況。在下面的程式碼中,第四個引數和第三個引數的差值一直在縮小
java 二分查詢法和順序查詢法的效率比較
專案背景: 從一個檔案獲取10萬筆字串型別資料,資料庫表中查詢出符合條件的5千數字符竄型別資料。把兩者匹配的資料查詢出來。 結論: 1、如果數量級不大,二種方式速度差不多 2、如果數量級較大 *如果源資料是有序的,則二分查詢法效率高 *
Java二分查詢的使用
java中的二分查詢 具體程式碼如下 import java.util.ArrayList; import java.util.List; public class binarySear
java 二分查詢、插值查詢
一、思想 二分查詢:又稱折半查詢,是順序查詢的優化 查詢序列要求:有序 二分查詢就是每次取中間位置的資料,將陣列分成兩部分,將目標值與中間值做比較,大於中間值則下次從右側陣列開始查詢,小於中間值,下次從左側陣列開始查詢,以此迴圈,直到中間值即
Java 二分查詢(遞迴實現)
廢話不說,直接上程式碼package com.search; public class SearchOfMid { public static void main(String[] args) { int [] arr = {1,3,4,5,2,5,1,8,9,5}
Java 二分查詢
import java.util.*; import java.lang.*; public class BinarySearch { public static int getPos(int[
(java)leetcode852 山脈陣列的封頂索引(二分查詢法找出陣列中最大值的下標)(Peak Index in a Mountain Array)
題目描述: 我們把符合下列屬性的陣列 A 稱作山脈: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A
輕鬆理解-中高階java開發必知必會 之 二分查詢
二分查詢也叫折半查詢,二分查詢就是將查詢的鍵和子陣列的中間鍵作比較,如果被查詢的鍵小於中間鍵,就在左子陣列繼續查詢;如果大於中間鍵,就在右子陣列中查詢,否則中間鍵就是要找的元素 但是這個查詢必須要求陣列中的數字是有順序性的其實還有很多關於這個二分查詢的變種演算法,可以自行拓展下。 而且此演算法在
JAVA之二分查詢
陣列中查詢元素的方式有兩種:1、基本查詢:適用於陣列元素無序 &nb
java實現二分查詢演算法,兩種方式實現,非遞迴和遞迴
java實現二分查詢演算法 1、概念 2、前提 3、思想 4、過程 4、複雜度 5、實現方式 1. 非遞迴方式 2. 遞迴方式
java——實現二分查詢法
二分查詢又稱折半查詢,它是一種效率較高的查詢方法。 折半查詢的演算法思想是將數列按有序化(遞增或遞減)排列,查詢過程中採用跳躍式方式查詢,即先以有序數列的中點位置為比較物件,如果要找的元素值小 於該中點元素,則將待查序列縮小為左半部分,否則為右半部分。通過一次比較,將查詢區間縮小一半。 折半
資料結構--二分查詢(Java版)
二分查詢:在一個有序陣列中查詢某個值。 一、迴圈實現 /** * 使用迴圈的方式實現二分查詢 * * @param array * @param value * @return 找到了value就返回該值,否則返回null
二分查詢的兩種實現(Java)
查詢過程 首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功
Java基礎練習02--二分查詢(Binary Search)
二分查詢也稱折半查詢(Binary Search),它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列