06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

24 Suchen<br />

Suchen von Werten <strong>in</strong>nerhalb von Datenbeständen gehört wie das Sortieren zu den wichtigsten Algorithmen<br />

<strong>in</strong> der Informatik.<br />

Der Wert nach dem gesucht wird, bezeichnet man meist als Schlüssel.<br />

24.1 Sequentielles Suchen<br />

Die e<strong>in</strong>fachste, <strong>und</strong> manchmal auch <strong>die</strong> e<strong>in</strong>zige Möglichkeit, e<strong>in</strong>en E<strong>in</strong>trag <strong>in</strong> e<strong>in</strong>em Feld zu suchen<br />

ist <strong>die</strong> sequentielle Suche.<br />

Dabei werden schlichtweg alle Elemente vom Anfang bis zum Ende mit dem gesuchten Wert verglichen.<br />

Im Durchschnitt s<strong>in</strong>d dafür N/2 Vergleiche nötig, wenn das Element im Feld enthalten ist,<br />

<strong>und</strong> immer N Vergleiche um festzustellen dass der Wert nicht im Feld enthalten ist.<br />

Dieser Algorithmus kann noch optimiert werden: Anstelle jedes mal <strong>in</strong>nerhalb der Suchschlaufe zu<br />

prüfen ob man das Ende des Feldes erreicht hat, kann man am Ende des Feldes den gesuchten Wert<br />

anhängen. Damit wird <strong>die</strong> Schlaufe auf jeden Fall beendet, ohne dass e<strong>in</strong> zusätzlicher Test auf erreichen<br />

des Ende des Feldes nötig ist. Das kann e<strong>in</strong>en merklichen Geschw<strong>in</strong>digkeitszuwachs zur<br />

Folge haben.<br />

Wenn der Datenbestand nicht sortiert ist, ist das Sequentielle Suchen <strong>die</strong> e<strong>in</strong>zige Suchmöglichkeit,<br />

<strong>und</strong> auch <strong>in</strong> Listen kann nur sequentiell gesucht werden<br />

24.2 Sequentielles Suchen <strong>in</strong> sortierten Feldern<br />

Sequentielles Suchen <strong>in</strong> sortierten Feldern funktioniert wie das normale sequentielle Suchen, nur<br />

dass man <strong>die</strong> Suche auf jeden Fall abbrechen kann, sobald man e<strong>in</strong> Element grösser oder gleich dem<br />

gesuchten Wert erreicht. Im Durchschnitt s<strong>in</strong>d hier N/2 Vergleiche nötig, unabhängig davon ob das<br />

gesuchte Element im Feld enthalten ist oder nicht.<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 94/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!