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的中間位置的元素進行比較。如果相等,則查詢成功,如果不相等,則查詢的元素一定在表的前半部分或者後半部分。繼續縮小範圍到前半部分或者後半部分再進行同樣的查詢,直到找到為止,或者查完之後仍然沒有找到元素。下面給出一次演算法的...