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
Zum Ende der Seite springen Algorithmus, der überprüft ob eine Summe existiert
Beiträge zu diesem Thema Autor Datum
 Algorithmus, der überprüft ob eine Summe existiert felixgraf 02.05.2017 17:02
 RE: Algorithmus, der überprüft ob eine Summe existiert eulerscheZahl 05.05.2017 19:30

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:
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Algorithmus, der überprüft ob eine Summe existiert