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

溫馨提示×

溫馨提示×

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

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

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

喀什市| 安新县| 扎鲁特旗| 麻阳| 高唐县| 沁阳市| 四子王旗| 阜新| 文安县| 澜沧| 麻江县| 内江市| 定陶县| 景泰县| 汉中市| 江安县| 枞阳县| 历史| 抚州市| 新河县| 上犹县| 斗六市| 肥东县| 永福县| 彩票| 怀仁县| 舒城县| 柘荣县| 壶关县| 门头沟区| 二手房| 岗巴县| 宣汉县| 湘阴县| 卫辉市| 磴口县| 北川| 惠来县| 夏津县| 东丽区| 福泉市|