16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

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>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

2.2.3.3 Anwendungen mit e<strong>in</strong>dimensionaler Datenfel<strong>de</strong>rn<br />

1. Sammeln<br />

Datenfel<strong>de</strong>r s<strong>in</strong>d die wohl nützlichsten Objekte <strong>in</strong> <strong>Java</strong>, mit <strong>de</strong>nen Objekte <strong>in</strong> leicht<br />

zugänglichen Listen gesammelt wer<strong>de</strong>n können.<br />

2. Suchen<br />

a) sequentielle Suche<br />

Aufgabenstellung: Gegeben ist e<strong>in</strong>e ganze Zahl (Schlüssel schl) und e<strong>in</strong> Feld (Array) mit<br />

ganzzahligen Werten, die <strong>in</strong> diesem Array beliebig verteilt s<strong>in</strong>d. Such die In<strong>de</strong>xposition, für die gilt<br />

„a[i] == schl“. Ist die Suche ergebnislos, dann gib „Nicht Gefun<strong>de</strong>n“ zurück.<br />

b) b<strong>in</strong>äre Suche<br />

Aufgabenstellung: Gegeben ist e<strong>in</strong>e ganze Zahl (Schlüssel schl) und e<strong>in</strong> Array a mit ganzzahligen<br />

Werten, die <strong>in</strong> diesem Feld <strong>in</strong> aufsteigen<strong>de</strong>r Folge vorliegen. Suche die In<strong>de</strong>xposition, für die gilt:<br />

a[i] == schl“. Ist die Suche ergebnislos, dann gib „Nicht Gefun<strong>de</strong>n“ zurück.<br />

Lösungsverfahren: Es wird geprüft, ob <strong>de</strong>r gesuchte Schlüssel sich <strong>in</strong> <strong>de</strong>r Mitte <strong>de</strong>s Array bef<strong>in</strong><strong>de</strong>t.<br />

Falls dies nicht <strong>de</strong>r Fall ist, wird „schl < a[mitte]“ im l<strong>in</strong>ken Teil (von <strong>de</strong>r Mitte aus gesehen) und<br />

für „schl > a[mitte]“ im rechten Teil <strong>de</strong>s Array gesucht. Diese Strategie kann fortgesetzt wer<strong>de</strong>n,<br />

bis die Suche erfolgreich war o<strong>de</strong>r <strong>de</strong>r Schlüssel nicht gefun<strong>de</strong>n wur<strong>de</strong>.<br />

3. Sortieren 158<br />

Aufgabenstellung: Schreibe e<strong>in</strong> Programm, das die <strong>in</strong> e<strong>in</strong>em Datenfeld („array“) gespeicherten ganzen<br />

Zahlen nach e<strong>in</strong>em e<strong>in</strong>fachen Sortierverfahren („Sortieren durch Austauschen, Bubble Sort“) <strong>in</strong><br />

aufsteigen<strong>de</strong> Sortierreihenfolge br<strong>in</strong>gt.<br />

Lösungsverfahren (Algorithmus): Man kann jeweils <strong>de</strong>n ersten Schlüssel gegen alle weiteren<br />

Schlüssel im Arbeitsspeicherfeld vergleichen und so an <strong>de</strong>r ersten Position <strong>de</strong>n kle<strong>in</strong>sten Schlüssel<br />

nach (N-1) Vergleichen ermitteln. Danach vergleicht man jeweils <strong>de</strong>n Schlüssel aus <strong>de</strong>r zweiten<br />

Position mit allen nachfolgen<strong>de</strong>n Schlüsslwerten. Nach (N-2) Vergleichen steht <strong>de</strong>r zweitkle<strong>in</strong>ste<br />

Sachlüssel an <strong>de</strong>r zweiten Position. Bei Fortsetzung dieser Verfahrensweise ist schließlich nur noch<br />

e<strong>in</strong> e<strong>in</strong>ziger Schlüssel vorhan<strong>de</strong>n, <strong>de</strong>r dann auf <strong>de</strong>r richtigen, <strong>de</strong>r letzten Position steht.<br />

Bsp.:<br />

1 2 3 4<br />

37 22 18 9 9 9 9 9 9 9 9<br />

22 37 37 37 37 22 18 18 18 18 18<br />

18 18 22 22 22 37 37 37 22 22 22<br />

9 9 9 18 18 18 22 22 37 37 25<br />

25 25 25 25 25 25 25 25 25 25 37<br />

Abb.: Tabelle mit 5 Schlüsseln zur Demonstration <strong>de</strong>s Bubble-Sort<br />

Vorschlag für die Implementierung:<br />

import java.util.*;<br />

class BubbleSort<br />

{<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g args[])<br />

{<br />

<strong>in</strong>t[] x;<br />

x = new <strong>in</strong>t[10];<br />

158 pr22301<br />

162

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!