二分查詢法

2021-09-28 14:47:54 字數 760 閱讀 6312

1,迴圈實現

public class 二分查詢法_01 

二分查詢法_01 instance = new 二分查詢法_01();

integer result = instance.find(arr,17);

system.out.println(result);

long end = system.currenttimemillis();

system.out.println("花費時間 = " + (end - start) );

}public integer find(int arr, int target)

if(target < guess)else

}return null;

}}

2,遞迴方式實現
public integer find(int arr, int low, int high, int target)

if(target > guess)

return guess;

}return null;

}

兩種演算法:

mid=(low+high)/2

mid=low+(high-low)/2

第二種可防溢位,保證計算出來的mid,一定大於low,小於high,不存在溢位的問題。

二分查詢法的缺點:

因為需要有序陣列,但是陣列的刪除插入效率不高,在無序陣列構建有序陣列的過程中效率較低,

可使用平衡二叉樹、二叉樹

二分查詢法

二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。優缺點 折半查詢法的優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者...

二分查詢法

有序陣列中的find 方法 public int find long serchkey int lowerbound 0 int upperbound nelems 1 while true curin lowerbound upperbound 2 if a curin serchkey retu...

二分查詢法

演算法基本思想 二分查詢演算法的前置條件是,乙個已經排序好的序列 假設這個序列是公升序排列的 這樣在查詢所要查詢的元素時,首先與序列中間的元素進行比較,如果大於這個元素,就在當前序列的後半部分繼續查詢,如果小於這個元素,就在當前序列的前半部分繼續查詢,直到找到相同的元素,或者所查詢的序列範圍為空為止...