Lihtne täielik binaarne otsing C++ lihtsa programmi algoritmi materjal

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

C++ keele binaarne otsinguprogramm on otsingualgoritm, mis jagab andmed kaheks osaks iga kord, kui toimub otsinguprotsess, et leida lineaarsest massiivist teatud väärtus. Binaarse otsingu c++ otsinguprotsessi saab läbi viia ainult andmekogumite puhul, mis on kõigepealt sorteeritud.
Binaarne otsing otsib keskmist väärtust (mediaani), teostab võrdluse, et teha kindlaks, kas otsitav väärtus on enne või pärast seda, ja seejärel otsib ülejäänud poole samal viisil. Binaarne otsing viiakse läbi, et:
a) Minimeerige otsitavate andmete ja tabelis olevate andmete võrdlustoimingute arv, eriti kui tegemist on väga suurte andmemahtudega.
b) Arvutuskoormus on väiksem, kuna otsitakse eest, tagant ja keskelt.
c) Põhiprintsiibiks on otsinguruumi jagamise protsess korduvalt läbi viia seni, kuni andmed on leitud või kuni otsinguruumi enam jaotada ei saa (mis tähendab, et on võimalus, et andmeid ei leita).
d) Ja binaarotsingu põhitingimus selles lihtsas C++ keeleprogrammis on, et tabelis olevad andmed peavad olema sorteeritud.

C++ binaarne otsingu algoritm

1. Esiteks on algpositsioon 0 ja lõppasend = N - 1, seejärel otsitakse keskmise andmepositsiooni valemi abil (algpositsioon + lõppasend) / 2. Seejärel võrreldakse otsitavaid andmeid keskmiste andmetega. 2. Seejärel otsime keskmise positsiooni valemiga keskmise andmepositsiooni, nimelt = (algusasend + lõpppositsioon) div 2. 3. Seejärel võrreldakse otsitavaid andmeid keskmiste andmetega a. Kui leitakse samad andmed, on protsess lõppenud. b. Kui see on väiksem, viiakse protsess läbi uuesti, kuid lõppasendiks loetakse keskmist positsiooni -1. c. Kui see on suurem, viiakse protsess läbi uuesti, kuid algpositsioon loetakse samaks kui keskmine asend +1. 4. Korrake toimingut teisest sammust, kuni andmed on leitud või neid ei leitud. 5. See kahendotsing lõpeb, kui leitakse, et andmed on lõppasendist kõrgemal lähtepositsioonil. Kui alguspositsioon on lõppasendist suurem, tähendab see, et andmeid ei leitud.


Otsige binaarse otsingumeetodi abil

#kaasa
kasutades nimeruumi std;
int main () { int n, number[12], vasak, parem, keskpunkt, temp, klahv; bool meet = vale;
cout<<'HARDIFAL'< cout<<'========================================='< cout<<'=========PROGRAM BINARY SEARCH C++==========='< cout<<'========================================='< cout<<'Masukan jumlah data : '; cin>>n;
for(int i=0; i { cout<<'Angka ke - ['< cin>>number[i]; } jaoks (int i=0; i { for(int j=0; j { if(arv[j] > arv[j+1]) { temp=arv[j]; arvud[j]=arvud[j+1]; arv[j+1] = temp; } } } cout<<'Data yang telah diurutkan adalah : '; for(int i=0; i { cout< } cout<<' Masukan angka yang dicari : '; cin>>võti;
nahk = 0; kanan=n-1;
samal ajal (nahk<=kanan) { keskpunkt=(vasak + parem)/2; if(klahv == number[keskel]) { vastama=tõsi; murda; } muidu kui (võti { parem = keskpunkt -1; } muidu { vasak = keskpunkt +1; } } kui (leitud == tõsi) cout<<'Angka ditemukan!'; muidu cout<<'Angka tidak ditemukan'; tagasi 0; }
Väljund – lihtsa binaarotsingu C++ programmi näide