Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-08-2004, 13:29   #1 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
«elegantes» durchsuchen einer zahlenreihe

hallo.

ich möchte eine bestimmte (chaotische) zahlenreihe nach einer zahl durchsuchen.

sagen wir mal die zahlenreihe wäre sowas wie:

3,17,18,19,25,26,80,160 usw. (die originalreihe hat über 50 zahlen)

ist dann die einzige/beste möglichkeit, alle zahlen in ein array zu packen und dieses zu durchsuchen? und kann man der for-schleife bei einem treffer sagen, sie sollte die suche beenden (ohne auch noch den rest durchforsten zu müssen?)

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 20-08-2004, 13:35   #2 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
also

deinarray = deinString.split(",");

ergibt ein Array mit allen Zahlen.

gebe an dieser Stelle an den folgenden weiter...
dburucu ist offline   Mit Zitat antworten
Alt 20-08-2004, 13:38   #3 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
und mit

break;

hört die Schleife auf zu schleifen
dburucu ist offline   Mit Zitat antworten
Alt 20-08-2004, 13:40   #4 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
schau mal hier.

ist sogar besser...

http://www.sephiroth.it/proto_detail.php?id=147
dburucu ist offline   Mit Zitat antworten
Alt 20-08-2004, 14:17   #5 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
schneller suchalgo:

ActionScript:
  1. this.onLoad = function() {
  2.     zahlen = [];
  3.     for (var i = 0; i<=99999; i++) {
  4.         zahlen[i] = i;
  5.     }
  6.     suche = 77523;
  7.     ende = zahlen.length-1;
  8.     startW = 0;
  9.  
  10. t1= getTimer();
  11.   while (startW<=ende) {
  12.         anzahl++;
  13.         pos = Math.round((startW+ende)/2);
  14.         e=(zahlen[pos] == suche)? (0) : ((suche<zahlen[pos])? (ende=pos-1) : (startW=pos+1));
  15.         if(e==0) break;
  16.         pos=Math.round((startW+ende)/2);
  17.         e=(zahlen[pos] == suche)? (0) : ((suche>zahlen[pos])? (startW=pos+1) : (ende=pos-1));
  18.         if(e==0) break;
  19.         pos = Math.round((startW+ende)/2);
  20.         e=(zahlen[pos] == suche)? (0) : ((suche<zahlen[pos])? (ende=pos-1) : (startW=pos+1));
  21.         if(e==0) break;
  22.         pos=Math.round((startW+ende)/2);
  23.         e=(zahlen[pos] == suche)? (0) : ((suche>zahlen[pos])? (startW=pos+1) : (ende=pos-1));
  24.         if(e==0) break
  25.    }
  26.  
  27.     trace(' zeit für 100.000 : '+(getTimer()-t1));
  28.     trace("Anzahl der Durchläufe "+anzahl);
  29.     trace("Zahl an Stelle "+positionA+" im Array ist "+suche);
  30. }



meintest du so was?

das ist jetzt ein array mit 100.000 ! zahlen...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 20-08-2004, 16:49   #6 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
@kelor: ja, danke.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele