introduction searching algorithms c
Ein Überblick über Suchalgorithmen in C ++.
Wir suchen in unserem Alltag nach dem einen oder anderen. Genau wie in unserem Alltag müssen wir als Softwareprofi auf unserem Computer nach Informationen suchen. Das Abrufen von Informationen sollte schnell erfolgen, da wir es uns nicht leisten können, viel Zeit mit der Suche nach Informationen zu verschwenden.
Daher benötigen wir einige effiziente Suchtechniken oder Algorithmen, mit denen eine bestimmte Information in kurzer Zeit durchsucht und dem Benutzer zur Verfügung gestellt werden kann, damit der Benutzer die anderen Aufgaben ausführen kann.
=> Besuchen Sie hier für die vollständige Liste der C ++ - Tutorials.
Was du lernen wirst:
Suchtechniken
Wir haben zwei Hauptsuchtechniken, die hauptsächlich zur Suche nach Informationen eingesetzt werden.
Diese schließen ein:
- Lineare Suche
- Binäre Suche
In diesem Tutorial werden wir beide Suchtechniken im Detail untersuchen.
Lineare Suche
Dies ist die grundlegendste Suchtechnik und auch einfacher zu implementieren. Bei einer linearen Suche wird der zu durchsuchende Schlüssel linear mit jedem Element der Datenerfassung verglichen. Diese Technik funktioniert effektiv bei linearen Datenstrukturen.
Betrachten wir das folgende Array.
Oben ist das Array von sieben Elementen. Wenn wir den Schlüssel = 23 suchen wollen, dann beginnen wir mit der 0thElement wird der Schlüsselwert mit jedem Element verglichen. Sobald das Schlüsselelement mit dem Element im Array übereinstimmt, wird dieser bestimmte Speicherort zurückgegeben. In diesem Fall wird 4 zurückgegeben, da der Schlüsselwert mit dem Wert an diesem Ort übereinstimmt.
Wir haben unten eine lineare Suche in C ++ und Java implementiert.
C ++ Implementierung
#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 '< Ausgabe:
Anime-Websites, um Anime kostenlos in Englisch synchronisiert zu sehen
Das Eingabearray ist
21 43 23 54 75 13 5 8 25 10
Geben Sie den zu durchsuchenden Schlüssel ein: 3
Der angegebene Schlüssel im Array konnte nicht gefunden werden
Das Eingabearray ist
21 43 23 54 75 13 5 8 25 10
Geben Sie den zu durchsuchenden Schlüssel ein: 75
Schlüssel an Position 5 im Array gefunden
Java-Implementierung
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'); } }
Ausgabe:
Das Eingabearray ist
21 43 23 54 75 13 5 8 25 10
Enter-Taste
2. 3
Schlüssel an Position 3 gefunden
Die lineare Suche kann für jede lineare Datenstruktur mit sortierten oder unsortierten Elementen durchgeführt werden. Es dauert jedoch länger, wenn zu viele Elemente vorhanden sind und das Schlüsselelement sich dem Ende nähert, da jedes Element mit dem Schlüsselwert verglichen wird.
Binäre Suche
Die binäre Suche ist eine Technik, bei der mithilfe der 'Teilen und Erobern' -Technik nach einem Schlüssel gesucht wird. Es arbeitet mit einer sortierten linearen Liste von Elementen. Die sortierte Liste ist die Grundvoraussetzung für die Funktion einer binären Suche.
Bei der binären Suchmethode wird die Liste wiederholt in zwei Hälften geteilt und das Schlüsselelement wird in beiden Hälften der Liste durchsucht, bis der Schlüssel gefunden ist.
Zum Beispiel,Nehmen wir das folgende sortierte Array mit 10 Elementen.

Nehmen wir an, der Schlüssel = 21 soll im Array gesucht werden.
Berechnen wir die mittlere Position des Arrays.
Mitte = 0 + 9/2 = 4
Zum Beispiel,Nehmen wir das folgende sortierte Array mit 10 Elementen.

Meine Website in verschiedenen Browsern anzeigen
Schlüssel = 21
Zuerst werden wir den Schlüsselwert mit dem (mid) -Element vergleichen. Wir finden, dass der Elementwert bei mid = 21 ist.

Wir finden also diesen Schlüssel = (Mitte). Daher ist der Schlüssel gefunden.
Schlüssel = 25

Wir vergleichen zuerst den Schlüsselwert mit mid. Also (21<25), we will directly search for the key in the upper half of the array.

Jetzt finden wir wieder die Mitte für die obere Hälfte des Arrays.
Mitte = 4 + 9/2 = 6
Der Wert an Position (Mitte) = 25

Jetzt vergleichen wir das Schlüsselelement mit dem Mittelelement. Also (25 == 25), also haben wir den Schlüssel an Position (Mitte) gefunden.
Was ist Regressionstest in Software
Wir teilen das Array wiederholt und durch Vergleichen des Schlüsselelements mit der Mitte entscheiden wir, in welcher Hälfte nach dem Schlüssel gesucht werden soll.
Im Folgenden sind die C ++ - und Java-Implementierung für die binäre Suche aufgeführt.
C ++ Implementierung
#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 '< Ausgabe:
Das Eingabearray ist
5 8 10 13 21 23 25 43 54 75
Geben Sie den zu durchsuchenden Schlüssel ein: 21
Schlüssel an Position 5 gefunden

Java-Implementierung
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) Ausgabe:
Das Eingabearray ist
5 8 10 13 21 23 25 43 54 75
Geben Sie den zu durchsuchenden Schlüssel ein
einundzwanzig
Die Position des Schlüssels ist 5
Die binäre Suche ist in Bezug auf Zeit und Korrektheit effizienter. Lineare Suchtechniken werden selten verwendet, da sie umständlicher und langsamer sind. Die binäre Suche ist im Vergleich zu einer linearen Suche viel schneller.
Fazit
Die Suchtechniken helfen uns, nach Informationen zu suchen, die auf einem Computer gespeichert sind, damit der Benutzer mit den anderen Aufgaben der Informationsverarbeitung fortfahren kann. Die lineare Suchtechnik ist einfach und einfacher, wird jedoch nicht häufig verwendet.
Die binäre Suchtechnik ist viel schneller und effizienter und wird daher häufig verwendet.
In unserem nächsten Tutorial werden wir die verschiedenen Sortiertechniken im Detail untersuchen.
=> Lesen Sie hier den perfekten C ++ - Schulungsleitfaden.
Literatur-Empfehlungen
- Einführung in die Java-Programmiersprache - Video-Tutorial
- Einführung in Appium Studio: Hauptvorteile und -funktionen
- Algorithmen in STL
- Beste KOSTENLOSE C # Tutorial-Serie: Der ultimative C # Leitfaden für Anfänger
- JMeter Video 1: Einführung, Herunterladen und Installieren von JMeter
- Python-Einführungs- und Installationsprozess
- Was ist Unix? Eine kurze Einführung in Unix
- Einführung in Micro Focus LoadRunner - Lasttests mit LoadRunner Tutorial # 1