二分查詢(折半查詢)

2021-08-01 22:40:25 字數 964 閱讀 3240

時間限制:

3000

ms  |  記憶體限制:

65535

kb難度:

3描述

在某一國度裡流行著一種遊戲。遊戲規則為:在一堆球中,每個球上都有乙個整數編號i(0<=i<=100000000),編號可重複,現在說乙個隨機整數k(0<=k<=100000100),判斷編號為k的球是否在這堆球中(存在為"yes",否則為"no"),先答出者為勝。現在有乙個人想玩玩這個遊戲,但他又很懶。他希望你能幫助他取得勝利。

輸入

第一行有兩個整數m,n(0<=n<=100000,0<=m<=1000000);m表示這堆球裡有m個球,n表示這個遊戲進行n次。

接下來輸入m+n個整數,前m個分別表示這m個球的編號i,後n個分別表示每次遊戲中的隨機整數k

輸出

輸出"yes"或"no"

樣例輸入

6 423 34 46 768 343 343

2 4 23 343

樣例輸出

nono

yesyes

個人認為認真分析此**就能學會二分查詢。

#include#include#includeusing namespace std;

int a[1000005];

int main()

if (right < left) printf("no\n");

else printf("yes\n");

} return 0;

}

二分查詢(折半查詢)

二分查詢 折半查詢 從有序序列中找到給出的要查詢的數字。原理是 首先把乙個有序序列中間位置的值與要查詢的數比較,若相等則找到了有序序列中的此數 否則比較兩者的大小,若前者大,則把有序序列的中間位置以前的元素都去掉,餘下的元素組成乙個新的有序數列繼續上一步的操作,直到找到為止 若後者大,則把有序數列中...

折半查詢(二分查詢)

折半查詢 又稱二分查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有 序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前...

折半查詢(二分查詢)

折半查詢 又稱二分查詢 簡單的理解就是整形有序的陣列中,在查詢過程中把要查詢的與陣列最中間的數進行比較以次迴圈進行查詢,找到了返回下標,找不到返回 1。include stdio.h include stdlib.h 折半查詢函式 int binary search int arr,int key,...