TauschArray2

A-Welt Forum
Verfügbare Informationen zu "TauschArray2"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: alexander
  • Forum: A-Welt Forum
  • Forenbeschreibung: Das geile Forum
  • aus dem Unterforum: Java-Forum
  • Antworten: 1
  • Forum gestartet am: Freitag 04.03.2005
  • Sprache: deutsch
  • Link zum Originaltopic: TauschArray2
  • Letzte Antwort: vor 18 Jahren, 7 Monaten, 17 Tagen, 19 Stunden, 12 Minuten
  • Alle Beiträge und Antworten zu "TauschArray2"

    Re: TauschArray2

    alexander - 11.09.2005, 14:27

    TauschArray2
    Damit ihr etwas selber macht, hier eine Anleitung:

    Erst brauchen wir die Größe des Arrays. Den speichern wir in einer Variable, so brauchen wir später, wenn wir die Größe des Arrays ändern, das nur an einer Stelle tun:

    Code: final int groesse = 1000;

    Dann erstellen wir ein Array:

    int[] array = new int[groesse];

    Als nächstes machen wir ein geordnetes Array (, um es später zu zerstreuen):

    Code: for(int i=0; i<groesse;i++)
       array[i] = i;

    Jetzt zerstreuen wir es. Dazu brauchen wir eine Zufallszahl von 0 bis Größe des Arrays und ein Zwischenspeicher (dazu später mehr):

    Code: int rand, copy;

    for(int i=0;i<groesse;i++)
    {
       // rand liefert normalerweise einen Wert von 0-1 (float)
       // deswegen müssen wir es in ein int umwandeln!!
       rand = (int)(Math.rand()*anz);
       copy = array[rand];
       // An dieser Stelle geht die Information (von a[rand]) verloren
       // Dazu haben wir es vorher gesichert
       array[rand] = a[i];
       // jetzt können wir das gesicherte Element nutzen
       array[i] = copy;
       // Es gibt vielleicht andere Versionen zum Tauschen,
       // doch dieser ist erprobt und funktioniert!!
    }

    Um eine Zahl in dem Array zu finden kann man "liniar" Suchen:

    Code: int x; // Gesuchete Zahl
    int element;   // Gesuchte zahl im Element
    boolean gefunden=false;   // Suche erfolgreich?

    for(int i=0;i<groesse;i++)
    {
       if(array[i]==x)
       {
          element=i;
          gefunden = true;
       }
    }

    Um die Zeit zu messen braucht man nur vor und hinter der for-Schleife die Zeit zu messen und später auszuwerten:

    Code: long time = System.currentTimeMillis();

    for(int i=0;i<groesse;i++)
    {
       // siehe oben
    }

    time = System.currentTimeMillis() - time;

    Jetzt hat man in time die gebrauchte Zeit im Millisekunden!!
    (Hinweis: um einen wirklichen Unterschied bei der Zeitmessung zu sehen braucht man schon min. 10.000.000!! Elemente)

    Schließlich die Ausgabe:

    Code: // Ausgabe der Elemente
    // Damit das System nicht überlastet wird, wenn wir so 10.000.000 Elemente haben
    // sparen wir die Ausgabe, wenn man mehr als 1000 Elemente hat ;)
    if(groesse<=1000)
    {
       for(int i=0;i<groesse;i++)
          // Man kann das natürlich auch anders machen
          // aber das geht hier schneller ;)
          System.out.println(""+array[i]);
    }

    // Hier das gefundene Element
    if(gefunden)
       System.out.println("Element "+x+" an der Stelle "+element);
    else
       System.out.println("Element nicht gefunden!");
       
    // Und schließlich die gebrauchte Zeit
    System.out.println("Gebrauchte Zeit[nsec]: "+time);

    Und vergesst nicht es etwas persönlicher zu gestallten, denn Lommel will es überprüfen

    viel Spaß
    alexander



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum A-Welt Forum

    Sortierung - gepostet von alexander am Mittwoch 29.03.2006
    Zahlensystem - gepostet von alexander am Mittwoch 03.05.2006
    2ter Verbraucher - gepostet von alexander am Mittwoch 26.10.2005



    Ähnliche Beiträge wie "TauschArray2"