資料結構 二分查詢法

2022-09-14 18:42:11 字數 1230 閱讀 1431

public class sequencesearch02  ,

輸入乙個數看看該陣列是否存在此數,並且求出下標,如果沒有就提示"沒有這個數"。*/

/*思路分析:

* 當陣列個數為奇數時:

* 1.先定義乙個陣列 int nums=

* 2.定義 下標low:0,上標height:6 middle指標為:(low+middle)/2

* 3.定義 要查詢的數為x=29

* 第一輪:low:0,上標:6 middle:(low+middle)/2為下標[3]的數=33 因為:x<33 所以範圍向下半區縮小 low:0,height:middle-1=[2]=10 middle=[1]=8

* 第二輪:low:0,height:middle-1=[2]=10 middle=[1]=8 因為:x>middle 所以範圍向上半區縮小 low=middle+1=[2]=10 h[2]=10 middle=[2]=10

* 第三輪:x>middle 所以low=middle+1=[3]=89 low大於height 退出迴圈

** 當陣列個數為偶數時: x=1234

* 1.先定義乙個陣列 int nums=

* 2.定義 下標low:[0],上標height:[5] middle指標為:(low+middle)/2=[2]=10

* 3.第一輪:進行判斷 因為x>middle 所以low=middle+1=[3]=89 上標height:[5] middle=[4]=1000

* 第二輪:進行判斷 因為x>middle[4] 所以low=middle+1=[5]=1234 middle=(5+5)/2=[5]=1234

* 第三輪:進行判斷 因為x=middle break

* */

int nums=;

int low=0;

int height=nums.length-1;

int middle=(low+height)/2;

int x = 1234;

int temp=0;

int count=0;

// 遍歷陣列

while(low <= height) else if (x > nums[middle])

else

}if (temp == 0)

system.out.println("共進行了"+count+"次查詢");

}}

資料結構 二分查詢

二分查詢演算法也稱為折半搜尋 二分搜尋,是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜素過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為...

資料結構 二分查詢

總共有n個元素,漸漸跟下去就是n,n 2,n 4,n 2 k 接下來操作元素的剩餘個數 其中k就是迴圈的次數。由於你n 2 k取整後 1,即令n 2 k 1,可得k log2n,是以2為底,n的對數 所以時間複雜度可以表示o o logn public class binarysearch else...

資料結構 二分查詢

二分查詢適用於有序的順序表,基本的思路是 首先將給定的關鍵字key與表array的中間位置的元素進行比較。如果相等,則查詢成功,如果不相等,則查詢的元素一定在表的前半部分或者後半部分。繼續縮小範圍到前半部分或者後半部分再進行同樣的查詢,直到找到為止,或者查完之後仍然沒有找到元素。下面給出一次演算法的...