C 實戰(一)二分搜尋

2021-10-04 22:57:40 字數 748 閱讀 6529

1.編寫乙個程式,使其實現二分搜尋

/*二分搜尋

*以vector為例

*/#include

#include

using

namespace std;

intmain()

p.sort

(p.begin()

,p.end()

,(const

int& a,

const

int& b)

)//排序

auto beg=p.

begin()

; cout<<

"請輸入您要查詢的數"

cin>>num;

auto end=p.

end();

auto middle=p.

begin()

+(end-beg)/2

+1;//中間點

while

(middle!=end&&

*middle!=num)

if(middle==end)

cout<<

"未找到!"

cout<<

"找到了"

<<

*middle

}

小結:

1.容器要先排序

2.要調整中間點

查詢(一)二分查詢

基本思想 說明 元素必須是有序的,如果是無序的則要先進行排序操作。也稱為是折半查詢,屬於有序查詢演算法。用給定值k先與中間結點的關鍵字比較,中間結點把線形表分成兩個子表,若相等則查詢成功 若不相等,再根據k與該中間結點關鍵字的比較結果確定下一步查詢哪個子表,這樣遞迴進行,直到查詢到或查詢結束發現表中...

python搜尋演算法實現 (一)二分查詢法

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

c 語言 二分搜尋

題目描述 在有序序列中查詢某一元素x。輸入首先輸入乙個正整數n n 100000 表示該序列有n個整數,然後按從小到大的順序輸入n個整數 接著是乙個正整數m,表示有m次查詢 最後是m個整數,表示m個要查詢的整數x。輸出對於每一次查詢,有一行輸出。若序列中存在要查詢的元素x,則輸出元素x在序列中的序號...