演算法學習之路 二分查詢

2021-06-29 13:53:09 字數 596 閱讀 2148

描述:

給定乙個單調遞增的整數序列,問某個整數是否在序列中。

輸入:第一行為乙個整數n,表示序列中整數的個數;第二行為n(n不超過10000)個整數;第三行為乙個整數m(m不超過50000),表示查詢的個數;接下來m行每行乙個整數k。

輸出:每個查詢的輸出佔一行,如果k在序列中,輸出yes,否則輸出no。

輸入樣例:

5

1 3 4 7 1133

69

輸出樣例:

yes

nono

public class binarysearch

int m = cin.nextint();

int searcharr = new int[m];

for (int i = 0; i < m; i++)

for (int i = 0; i < m; i++)

} }public static void search(int low, int high, int d) else else if (arr[mid] > d) else if (arr[mid] < d)

} }}

經典演算法學習 二分查詢

在所有的查詢演算法中,二分查詢是最簡單一種。二分查詢要求原先的序列是已經排序的,每次都是以序列中間的數字作為比較,如果小於中間的數字,那麼就在序列左邊繼續遞迴查詢 如果大於中間的數字,那麼就在序列右邊繼續遞迴查詢。直到找到該數字,或者直到序列中只有乙個數字的時候都還沒找到,則查詢失敗。查詢的時間複雜...

二分查詢演算法學習札記

二分查詢演算法學習札記 說明blog 二分查詢演算法基本思想 二分查詢演算法的前置條件是,乙個已經排序好的序列 在本篇文章中為了說明問題的方便,假設這個序列是公升序排列的 這樣在查詢所要查詢的元素時,首先與序列中間的元素進行比較,如果大於這個元素,就在當前序列的後半部分繼續查詢,如果小於這個元素,就...

演算法學習 1 二分查詢

先從乙個問題思考,假設我們現在查詢英語字典裡的一k為開頭的單詞。如果我們從頭開始翻,一直翻到k,那樣太浪費時間了。通常我們都會直接翻開字典中間開啟位置看看是什麼字母的,如果我們翻到了j,k在j後面,那麼我們繼續往後翻就到了,比從頭開始翻快多了。二分查詢是一種演算法,其輸入是乙個有序的元素列表 必須有...