matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenAlgorithmen und DatenstrukturenAlgorithmus mit Laufzeit
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Algorithmen und Datenstrukturen" - Algorithmus mit Laufzeit
Algorithmus mit Laufzeit < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Algorithmus mit Laufzeit: Laufzeit gegeben!
Status: (Frage) beantwortet Status 
Datum: 23:51 So 27.04.2014
Autor: Max80

Aufgabe
<br>
Schreib einen Algorithmus mit worst case Laufzeit O(n Log n) der folgendes leistet: Für eine gegebene Menge S und Zahl x wird entschieden, ob es zwei Elemente in S gibt, deren Summe x ergibt. S und x sind rationale Zahlen.


<br>

Hallo zusammen,

also der Algorithmus selbst ist ja eigentlich klar finde ich: Es soll geguckt werden, ob die dem Algorithmus übergebene Zahl die Summe von zwei Zahlen in S entspricht.

D.h. ich nehme die erste Zahl, addiere die Zweite hinzu. Passt es? Nein? Dann die erste und die dritte. Passt? usw.

Problem ist die vorgegebene Laufzeit. Wie kann ich jetzt den Algorithmus genau so entwickeln, dass er O(n*Log(n)) entspricht wie oben angegeben? Habt ihr da einen Tipp was ich machen kann?

Danke!!
Gruß
Max

        
Bezug
Algorithmus mit Laufzeit: Antwort
Status: (Antwort) fertig Status 
Datum: 00:46 Mo 28.04.2014
Autor: Teufel

Hi!

[mm] $n\log(n)$-Laufzeiten [/mm] riechen oft nach Sortieren. Also sortiere deine Zahlen der Größe nach und beginne dann mit der kleinsten Zahl [mm] $s_1\in [/mm] S$. Wenn [mm] $s_1+s_i=x$ [/mm] gelten soll, müsstest du nun nach [mm] $s_i=x-s_1$ [/mm] suchen. Wie schnell geht das? Und wie geht der Algorithmus dann weiter? Und hat er schon die geforderte Laufzeit?

Bezug
                
Bezug
Algorithmus mit Laufzeit: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:28 Di 29.04.2014
Autor: Max80

Aufgabe
<br>
 


<br>

Hi!
Danke für die Hilfe. Muss es denn immer S1 sein? Was wenn x z.B. 5 ist und die Menge enthält {1,2,3}, dann wäre S1 = 1 und damit käme ich aber nicht auf x.
Also muss ich alle durchlaufen (S1 + alle anderen) und wenn das nichts hilft, S2+alle anderen und so weiter, oder?

Ob das nun aber der Laufzeit entspricht oder nicht? Echt keine Ahnung. :(

Gruß
Max

Bezug
                        
Bezug
Algorithmus mit Laufzeit: Antwort
Status: (Antwort) fertig Status 
Datum: 21:06 Di 29.04.2014
Autor: Teufel

Hi!

Ja, wenn sich $x$ nicht so schreiben lässt, läuft der Algorithmus trotzdem bis zum Ende durch, findet aber eben nichts. Aber nehmen wir mal ein Positivbeispiel.

[mm] $S=\{4,2,6,7,9,1,1\}, [/mm] x=11$. Wir sortieren $S$ zuerst (wie lange dauert das bei $n$ Elementen?) und erhalten [mm] $S=\{1,1,2,4,6,7,9\}$. [/mm]

Nun nehmen wir uns das erste (linkeste) Element, [mm] s_1=1. [/mm] Nun suchen wir ein [mm] $s_i=x-s_1=10$ [/mm] (damit [mm] $s_1+s_i=x$ [/mm] gilt). Das machen wir mit Binärsuche auf allen Elementen rechts von [mm] s_1. [/mm] Wie lange dauert diese Suche? Der Algorithmus wird nichts finden, also geht es mit [mm] s_2=1 [/mm] weiter. Binärsuche nach 10 auf allen Elementen rechts von [mm] s_2: [/mm] Er findet wieder nichts (klar).

Dann [mm] s_3=2. [/mm] Binärsuche nach [mm] x-s_3=9. [/mm] Der Algorithmus findet die 9 und kann [mm] s_3=2 [/mm] und [mm] x-s_3=9 [/mm] ausgeben.

Nun überlege noch, wie lange alle diese Schritte immer brauchen.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]