www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

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
Forum "Algorithmen und Datenstrukturen" - Allg. Laufzeitformel
Allg. Laufzeitformel < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Allg. Laufzeitformel: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:36 Fr 02.02.2007
Autor: carlito83

Aufgabe
Geben Sie eine allgemeine Formel für die Laufzeit an.

for(int i=1;i<=n;i++)
{
    for(int j=1;j<i;j+=2)
   {
      var++;
   }
}

Hi, vllt. könnt ihr mir ja gerade helfen.

Hier meine Frage wie bekomme ich das j+=2 auf der in inneren For Schleifen in mein Summenzeichen.

[mm] \summe_{i=1}^{n}( \summe_{j=1}^{i} [/mm] ?)

Danke schonmal und für Tipps wie es dann weiter geht bin ich auch noch offen^^

MFG

        
Bezug
Allg. Laufzeitformel: Antwort
Status: (Antwort) fertig Status 
Datum: 15:39 Fr 02.02.2007
Autor: Karl_Pech

Hallo carlito83,


> Geben Sie eine allgemeine Formel für die Laufzeit an.
>  
> for(int i=1;i<=n;i++)
>  {
>      for(int j=1;j<i;j+=2)
>     {
>        var++;
>     }
>  }
>
> wie bekomme ich das j+=2 auf der in
> inneren For Schleifen in mein Summenzeichen.
>  
> [mm]\summe_{i=1}^{n}( \summe_{j=1}^{i}[/mm] ?)


Also die innere Summe sollte bis [mm]i-1[/mm] laufen und nicht bis [mm]i[/mm]. Die innere Schleife zählt hier im Schleifenkopf alle ungeraden Zahlen zwischen [mm]1[/mm] und [mm]i-1[/mm] auf. Das Problem ist, daß [mm]i-1[/mm] hier gerade und im nächsten Schritt wieder ungerade sein kann. Aber die Gauß-Klammer (nach oben runden) sollte hier helfen. Damit wird die innere Schleife [mm]\left\lceil\tfrac{i-1}{2}\right\rceil[/mm] mal aufgerufen, weil ungefähr die Hälfte der natürlichen Zahlen zwischen [mm]1[/mm] und [mm]i-1[/mm] (un)gerade Zahlen sind.
Um dann weiter mit diesem Term die äußere Summe aufzulösen, mußt du - denke ich mal - eine Fallunterscheidung: "[mm]i[/mm] (un)gerade" machen, um dann die entgültige exakte Laufzeit zu bekommen, oder aber du nimmst später die [mm]\mathcal{O}\texttt{-Notation}[/mm] und gehst deswegen vom schlechteren Fall aus, daß nach oben gerundet wird.



Viele Grüße
Karl




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


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