Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Algorithmus, der überprüft ob eine Summe existiert » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Algorithmus, der überprüft ob eine Summe existiert
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
felixgraf
Grünschnabel


Dabei seit: 02.05.2017
Beiträge: 2

Algorithmus, der überprüft ob eine Summe existiert Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich soll einen Algorithmus angeben, dessen Worst-Case Laufzeit 0(n log_2(n)) beträgt und folgendes können soll:
Für eine gegebene endliche Menge S Teilmenge von Q| mit |S|=n und eine Zahl x in Q| wird entschieden, ob es zwei Elemente a,b in S gibt, deren Summe x ergibt.

Folgendes habe ich, weiß aber nicht ob das richtig ist:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
nehme an die Menge S sein ein Array mit S(0, … , n)

for a = 0 to n do
	for b = 0 to n do
		if (a + b = x) then do
			gebe wahr zurück
		end if
	end do
end do
gebe falsch zurück

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von felixgraf: 02.05.2017 17:05.

02.05.2017 17:02 felixgraf ist offline Beiträge von felixgraf suchen Nehmen Sie felixgraf in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du prüfst zwar, ob die Summe x ist, aber in Laufzeit O(n^2).

Lösung:
Sortieren (in O(n^* log(n)))
und dann 2 Indizes auf das erste und letzte Element im Array.
wenn die Summe kleiner als x ist, musst du den ersten Index nach hinten schieben, sonst den zweiten nach vorne.

__________________
Syntax Highlighting fürs Board (Link)
05.05.2017 19:30 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Algorithmus, der überprüft ob eine Summe existiert