introduction searching algorithms c
En oversigt over søgning efter algoritmer i C ++.
Vi fortsætter med at søge efter det ene eller det andet i vores hverdag. Ligesom vores hverdag er vi som softwareprofessionel nødt til at søge efter information på vores computer. Indhentning af information skal ske hurtigt, da vi ikke har råd til at spilde meget af vores tid på at søge efter information.
Derfor har vi brug for nogle effektive søgeteknikker eller algoritmer, der kan søge i et givet stykke information på kort tid og give til brugeren, så brugeren kan gå videre med de andre opgaver.
=> Besøg her for den komplette C ++ tutorials liste.
Hvad du lærer:
Søgeteknikker
Vi har to hovedsøgningsteknikker, der mest bruges til at søge efter information.
Disse inkluderer:
- Lineær søgning
- Binær søgning
I denne vejledning vil vi undersøge begge disse søgeteknikker i detaljer.
Lineær søgning
Dette er den mest basale søgeteknik og er også lettere at implementere. I en lineær søgning sammenlignes nøglen, der skal søges, lineært med hvert element i dataindsamlingen. Denne teknik fungerer effektivt på lineære datastrukturer.
Lad os overveje følgende array.
Ovenfor er en række syv elementer. Hvis vi vil søge nøgle = 23, så start fra 0thelement sammenlignes nøgleværdien med hvert element. Når nøgleelementet matcher elementet i arrayet, returneres den pågældende placering. I dette tilfælde returneres 4, da nøgleværdien matcher værdien på den pågældende placering.
Vi har implementeret en lineær søgning ved hjælp af C ++ og Java-sprog nedenfor.
C ++ implementering
#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 '< Produktion:
hvad er forskellen mellem port forwarding og port triggering
Input arrayet er
21 43 23 54 75 13 5 8 25 10
Indtast nøglen, der skal søges: 3
Kunne ikke finde den givne nøgle i arrayet
Input arrayet er
21 43 23 54 75 13 5 8 25 10
Indtast den nøgle, der skal søges: 75
Nøgle fundet ved position 5 i arrayet
Java-implementering
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'); } }
Produktion:
Input arrayet er
21 43 23 54 75 13 5 8 25 10
Indtast nøgle
2. 3
nøgle fundet på placering 3
Lineær søgning kan udføres på enhver lineær datastruktur med sorterede eller usorterede elementer. Men det tager længere tid, hvis der er for mange elementer, og hvis nøgleelementet er mod slutningen, da hvert element sammenlignes med nøgleværdien.
Binær søgning
Binær søgning er en teknik, der bruger “opdele og erobre” teknik til at søge efter en nøgle. Det fungerer på en sorteret lineær liste over elementer. Den sorterede liste er det grundlæggende krav for, at en binær søgning fungerer.
I den binære søgemetode opdeles listen gentagne gange i halvdelen, og nøgleelementet søges i begge halvdele af listen, indtil nøglen findes.
For eksempel,lad os tage følgende sorterede matrix med 10 elementer.

er der en app til at planlægge Instagram-indlæg
Lad os sige, at nøglen = 21 skal søges i arrayet.
Lad os beregne matrixens midterste placering.
Mid = 0 + 9/2 = 4
For eksempel,lad os tage følgende sorterede matrix med 10 elementer.

Nøgle = 21
Først sammenligner vi nøgleværdien med elementet (mid). Vi finder ud af, at elementværdien midt = 21.

Således finder vi den nøgle = (mid). Derfor findes nøglen.
nøgle = 25

Vi sammenligner først nøgleværdien med midten. Så (21<25), we will directly search for the key in the upper half of the array.

Nu igen finder vi midten til den øverste halvdel af arrayet.
Midten = 4 + 9/2 = 6
Værdien på placering (midt) = 25

Nu sammenligner vi nøgleelementet med mellemelementet. Så (25 == 25), således har vi fundet nøglen på placering (midt).
Vi deler gentagne gange arrayet og ved at sammenligne nøgleelementet med midten beslutter vi i hvilken halvdel vi vil søge efter nøglen.
Nedenfor er C ++ og Java-implementeringen til binær søgning.
C ++ implementering
#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 '< Produktion:
Input arrayet er
5 8 10 13 21 23 25 43 54 75
Indtast den nøgle, der skal søges: 21
Nøgle fundet på placering 5

Java-implementering
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) Produktion:
Input arrayet er
5 8 10 13 21 23 25 43 54 75
hvordan man skriver test case i excel ark
Indtast nøglen, der skal søges
enogtyve
nøglens placering er 5
Binær søgning er mere effektiv med hensyn til tid og korrekthed. Lineær søgeteknik bruges sjældent, da den er mere besværlig og langsommere. Binær søgning er meget hurtigere sammenlignet med en lineær søgning.
Konklusion
Søgeteknikkerne hjælper os med at søge efter oplysninger, der er gemt på en computer, så brugeren kan fortsætte med de andre opgaver med informationsbehandling. Lineær søgeteknik er enkel og lettere, men bruges ikke i vid udstrækning.
Binær søgningsteknik er meget hurtigere og effektiv og bruges derfor i vid udstrækning.
I vores kommende vejledning vil vi udforske de forskellige sorteringsteknikker i detaljer.
=> Tjek den perfekte C ++ træningsvejledning her.
Anbefalet læsning
- Introduktion til Java-programmeringssprog - Videovejledning
- Introduktion til Appium Studio: Nøglefordele og funktioner
- Algoritmer i STL
- Bedste GRATIS C # tutorialsserie: Den ultimative C # guide til begyndere
- JMeter Video 1: Introduktion, JMeter Download og installer
- Python introduktion og installationsproces
- Hvad er Unix: En kort introduktion til Unix
- Introduktion til Micro Focus LoadRunner - Load Testing med LoadRunner Tutorial # 1