introduction searching algorithms c
Pregled pretraživanja algoritama u C ++.
Neprestano tražimo nešto ili drugo u svom svakodnevnom životu. Baš kao i u našem svakodnevnom životu, i mi kao softverski profesionalac moramo tražiti informacije na svom računalu. Dohvat podataka treba obaviti brzo, jer si ne možemo priuštiti da gubimo velik dio svog vremena tražeći informacije.
Stoga su nam potrebne neke učinkovite tehnike pretraživanja ili algoritmi koji mogu pretražiti određeni podatak u kratkom vremenu i dati ga korisniku kako bi korisnik mogao nastaviti s ostalim zadacima.
=> Posjetite ovdje za cjelovit popis tutorijala za C ++.
Što ćete naučiti:
Tehnike pretraživanja
Imamo dvije glavne tehnike pretraživanja koje se uglavnom koriste za traženje informacija.
To uključuje:
- Linearno pretraživanje
- Binarno pretraživanje
U ovom uputstvu detaljno ćemo istražiti obje ove tehnike pretraživanja.
Linearno pretraživanje
Ovo je najosnovnija tehnika pretraživanja i lakša je za primjenu. U linearnom pretraživanju, ključ koji se traži uspoređuje se linearno sa svim elementima prikupljanja podataka. Ova tehnika učinkovito djeluje na linearnim strukturama podataka.
Razmotrimo sljedeći niz.
Iznad je niz od sedam elemenata. Ako želimo pretražiti tipku = 23, onda polazeći od 0thelement, vrijednost ključa uspoređivat će se sa svakim elementom. Jednom kada se ključni element podudara s elementom u polju, vratit će se to određeno mjesto. U tom će se slučaju vratiti mjesto 4, jer se ključ / vrijednost podudara s vrijednošću na tom mjestu.
U nastavku smo implementirali linearno pretraživanje pomoću jezika C ++ i Java.
Implementacija C ++
#include #include using namespace std; int main() { int myarray(10) = {21,43,23,54,75,13,5,8,25,10}; int key,loc; cout<<'The input array is'<key; for (int i = 0; i<10; i++) { if(myarray(i) == key) { loc = i+1; break; } else loc = 0; } if(loc != 0) { cout<<'Key found at position '< Izlaz:
najbolje ocijenjeni besplatni softver za uklanjanje zlonamjernog softvera
Ulazni niz je
21 43 23 54 75 13 5 8 25 10
Unesite ključ koji želite pretražiti: 3
Nije moguće pronaći zadani ključ u polju
Ulazni niz je
21 43 23 54 75 13 5 8 25 10
Unesite ključ za pretragu: 75
Ključ pronađen na položaju 5 u polju
Implementacija Jave
import java.util.*; import java.lang.*; import java.io.*; public class Main { public static void main(String() args) { int() myarray = {21,43,23,54,75,13,5,8,25,10}; int key,location=0; Scanner sc = new Scanner(System.in); System.out.println('The input array is'); for(int i=0;i<10;i++){ System.out.print(myarray(i)+' '); } System.out.println('
'); System.out.println('Enter key'); key = sc.nextInt(); for(int i = 0; i<10; i++) { if(myarray(i)==key) { location = i+1; break; } else location = 0; } if(location != 0) { System.out.println('key found at location ' + location); } else System.out.println('Key not found'); } }
Izlaz:
Ulazni niz je
21 43 23 54 75 13 5 8 25 10
otvorite prozore datoteka .jar 10
Enter tipka
2. 3
ključ pronađen na lokaciji 3
Linearno pretraživanje može se izvesti na bilo kojoj linearnoj strukturi podataka koja ima sortirane ili nesortirane elemente. No, treba više vremena ako ima previše elemenata i ako je ključni element prema kraju, jer se svaki element uspoređuje s vrijednošću ključa.
Binarno pretraživanje
Binarno pretraživanje tehnika je koja za traženje ključa koristi tehniku 'podijeli i osvoji'. Radi na razvrstanom linearnom popisu elemenata. Razvrstani popis osnovni je uvjet da bi binarno pretraživanje moglo funkcionirati.
Kod binarne metode pretraživanja, popis se više puta dijeli na pola i ključni se element pretražuje u obje polovice popisa dok se ključ ne pronađe.
Na primjer,uzmimo sljedeći sortirani niz od 10 elemenata.

Recimo da se ključ = 21 traži u nizu.
Izračunajmo srednje mjesto niza.
Sredina = 0 + 9/2 = 4
Na primjer,uzmimo sljedeći sortirani niz od 10 elemenata.

Ključ = 21
Prvo ćemo usporediti ključnu vrijednost s elementom (mid). Otkrivamo da je vrijednost elementa u sredini = 21.

Tako pronalazimo taj ključ = (sredina). Stoga je ključ pronađen.
ključ = 25

Prvo uspoređujemo ključnu vrijednost sa sredinom. Dakle (21<25), we will directly search for the key in the upper half of the array.

Sada ćemo opet pronaći sredinu za gornju polovicu niza.
Sredina = 4 + 9/2 = 6
Vrijednost na lokaciji (mid) = 25

Sada uspoređujemo ključni element sa srednjim elementom. Dakle (25 == 25), stoga smo pronašli ključ na mjestu (sredina).
što je bug u testiranju softvera s primjerom
Niz više puta dijelimo i uspoređujući ključni element sa sredinom, odlučujemo u kojoj polovici ćemo tražiti ključ.
Dolje su dati implementacija C ++ i Java za binarno pretraživanje.
Implementacija C ++
#include #include using namespace std; int binarySearch(int myarray(), int beg, int end, int key) { int mid; if(end >= beg) { mid = (beg + end)/2; if(myarray(mid) == key) { return mid+1; } else if(myarray(mid) key; location = binarySearch(myarray, 0, 9, key); if(location != -1) { cout<<'Key found at location '< Izlaz:
Ulazni niz je
5 8 10 13 21 23 25 43 54 75
Unesite ključ koji treba pretražiti: 21
Ključ pronađen na lokaciji 5

Implementacija Jave
import java.util.*; import java.lang.*; import java.io.*; class Main { public static void main(String() args) { int() myarray = {5,8,10,13,21,23,25,43,54,75}; int key, location = -1; System.out.println('The input array is'); for(int i=0;i= beg) { mid = (beg + end)/2; if(myarray(mid) == key) { return mid+1; } else if(myarray(mid) Izlaz:
Ulazni niz je
5 8 10 13 21 23 25 43 54 75
Unesite ključ koji želite pretražiti
dvadeset i jedan
mjesto ključa je 5
Binarno pretraživanje učinkovitije je u pogledu vremena i ispravnosti. Tehnika linearnog pretraživanja rijetko se koristi jer je glomaznija i sporija. Binarno pretraživanje je puno brže u usporedbi s linearnim pretraživanjem.
Zaključak
Tehnike pretraživanja pomažu nam u pretraživanju podataka pohranjenih na računalu kako bi korisnik mogao nastaviti s ostalim zadacima obrade podataka. Tehnika linearnog pretraživanja jednostavna je i lakša, ali se ne koristi široko.
Tehnika binarnog pretraživanja mnogo je brža i učinkovitija, stoga se intenzivno koristi.
U našem nadolazećem uputstvu detaljno ćemo istražiti razne tehnike sortiranja.
=> Ovdje pogledajte Savršeni vodič za obuku za C ++.
Preporučena literatura
- Uvod u programski jezik Java - Video vodič
- Uvod u Appium Studio: Ključne prednosti i značajke
- Algoritmi u STL-u
- Najbolji BESPLATNI vodiči za C #: Vrhunski vodič za C # za početnike
- JMeter Video 1: Uvod, JMeter Preuzimanje i instaliranje
- Postupak uvođenja i instalacije Pythona
- Što je Unix: kratki uvod u Unix
- Uvod u Micro Focus LoadRunner - Ispitivanje opterećenja pomoću vodiča br. 1 za LoadRunner