Java語言基礎 查詢演算法 二分法查詢

2021-07-24 11:43:33 字數 657 閱讀 9180

陣列的搜尋演算法:從指定陣列中去搜尋某乙個元素的索引是多少。

方式1:

線性搜尋。從頭搜到尾或從尾搜到投。indexof、lastindexof

對於元素過多的陣列,效能極低。

方式2:

二分搜尋法/二分查詢法/折半查詢

前提:陣列元素必須是有順序。

猜數遊戲:

乙個朋友讓你猜她正在想的乙個從1到100至今的數,等你猜了,她會告訴你三種結果:你猜的比她想的大,或小,或猜中了。

切了能用最少的次數猜中,必須從50開始猜。如果她說你猜的小了,那麼就能推出那個數在50-100之間,所以馬上猜75。

反之,如果她說你猜大了,你也能明白那個數在1-50之間,所以馬上猜25.

如此反覆,範圍越來越小,知道猜到為止。

/**

* 從陣列arr中搜尋key的元素,找到返回所以,沒有找到返回-1

*@param arr

*@param key

*@return

*/public

static

intbinarysearch(int arr, int key)else

if (mid < key)else

}return -1;

}

Java 二分法查詢演算法

今天看演算法時無意間想起二分法查詢演算法,感覺很基礎,很不錯,分享給大家。二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。二分查詢又稱折半查詢,它是一種效率較高的查詢方法。二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字...

Java 二分法查詢

這學期學了資料結構這門課,這會都期末了才想起來更新部落格,所以我就來了,話不多說。如下 package com.vgbh public class binarysearch 二分法查詢必須是已經排序好的數列,且必須為正序,才可進行查詢 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢...

Java二分法查詢

前提 必須是有序的資料。基本思想 把乙個有序的資料乙份為二。然後判斷是比目標資料大了還是小了,如果小了往左邊的部分找 如果大了往右邊的資料找。確定了找的方向後再次把資料一分為二,繼續上面的步驟直到找到為止。涉及到了遞迴的思想。通俗的講 每次減少一半,然後確定方向,再次減少一半,直到找到為止。1 傳入...