91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

java二分法查找的實現方法

發布時間:2020-04-15 10:09:35 來源:億速云 閱讀:164 作者:小新 欄目:編程語言

這篇文章主要為大家詳細介紹了java二分法查找的實現方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

java二分法查找的實現方法

java二分法查找怎么實現

BinarySearch

二分法查找,顧名思義就是要將數據每次都分成兩份然后再去找到你想要的數據,

我們可以這樣去想,二分法查找很類似與我們平時玩的猜價格游戲,當你報出一個價格時裁判會告訴你價格相對于真實值的高低,倘若是低了那我們一定會再說出一個略高的價格,反之亦然。

()

在二分法查找時要求傳入的數據必須已經有序,假設現在為升序,然后每次將所尋找的值與中間值(數組左邊界+(右邊界-左邊界)/2)作比較,大了則去尋找中間值左側數據,小則尋找中間值右側數據。

public class BinarySearch {
//進行二分法查找的前提是數組已經有序!
	public static int rank(int key,int nums[])
	{
		//查找范圍的上下界
		int low=0;
		int high=nums.length-1;
		//未查找到的返回值
		int notFind=-1;
		while(low<=high)
		{
			//二分中點=數組左邊界+(右邊界-左邊界)/2
			//整數類型默認取下整
			int mid=low+(high-low)/2;
			//中間值是如果大于key
			if(nums[mid]>key)
			{
				//證明key在[low,mid-1]這個區間
				//因為num[mid]已經判斷過了所以下界要減一
				high=mid-1;
			}else if(nums[mid]<key)
			{
				//證明key在[mid+1,high]這個區間
				//同樣判斷過mid對應的值要從mid+1往后判斷
				low=mid+1;
			}
			else
			{
				//查找成功
				return mid;
			}
		}
		//未成功
		return notFind;
	}
	public static void main(String[] args) {
		System.out.println("請輸入數據數量:");
		Scanner scanner=new Scanner(System.in);
		int amount=scanner.nextInt();
		int num;
		int nums[]=new int[amount];
		int i=0;
		while(i<amount)
		{
			nums[i]=scanner.nextInt();
			i++;
		}
		Arrays.sort(nums);
		System.out.println("請輸入想要查找的值");
		int key=scanner.nextInt();
		int answer=rank(key,nums);
		if(answer!=-1)
		{
			System.out.println("所查找的數據存在:"+nums[answer]);
		}
		else
		{
			System.out.println("您所查找的數據不存在");
		}
	}
 
}

關于java二分法查找的實現方法就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

惠来县| 西峡县| 昆明市| 东海县| 阳江市| 攀枝花市| 囊谦县| 沈丘县| 建平县| 凌源市| 府谷县| 江陵县| 涿州市| 海丰县| 湾仔区| 泗水县| 息烽县| 工布江达县| 西藏| 吴江市| 泰宁县| 辉县市| 瑞丽市| 易门县| 洱源县| 松潘县| 康马县| 屏东县| 韩城市| 商水县| 枞阳县| 浙江省| 阳泉市| 称多县| 化州市| 塔河县| 图木舒克市| 泾阳县| 额尔古纳市| 台东市| 寿光市|