二分查詢法

2021-10-06 06:15:03 字數 598 閱讀 3741

二分查詢是一種演算法,其輸入是乙個有序的元素列表。如果要

查詢的元素包含在列表中,二分查詢返回其位置;否則返回

null。

假設用普通查詢1到100數字的任意數字,那麼最多需要100次查詢。而二分查詢取50先猜大小,如果大了就猜75以此類推,每次取中間的值,

從而每次都將餘下的數字排除一半,那麼最多7次就可以猜到。

一般而言,對於包含

n個元素的列表,用二分查

找最多需要

log2

n步,而簡單查詢最多需要n步。

/// /// 二分查詢法.

///

/// 有序陣列.

/// 起始索引.

/// 結束索引.

/// 查詢的值.

public static int twosearch(int list,int low,int high,int key)

//如果猜的數字大了

else if (list [mid] > key)

//猜的數字小了

else

} //沒有查到

return -1;

}

二分查詢法

二分查詢要求 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...

二分查詢法

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