Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-09-2004, 09:28   #1 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
Question spezielle Sortierung

Hallo, ich hab folgende Problemstellung:

1. Ich habe ein Array mit einer durchgehenden Zahlenfolge.
Also z.B. [1,2,3,4,5,6,7,8,9,10]

2. Das Array wird dann per Zufall gemischt.
z.B. [1,9,7,6,3,8,5,4,2,10]
Beim Mischen kann es sein, dass Zahlen an der Ausgangsposition stehen bleiben (hier 1 und 10).

3. Das Array soll nun durch Austauschen von jeweils zwei Zahlen sortiert werden. Dabei kann es vorkommen, dass beim Austauschen zwei Zahlen auf ihre Ausgangsposition gleichzeitig kommen. Hier 9 und 2

Durch geschicktes Austauschen sollen möglichst wenig Züge erreicht werden. Wie ermittel ich die kleinstmögliche Anzahl von Zügen (Austausch-Vorgängen)?

Für Lösungsansätze wäre ich dankbar.
juggernart ist offline   Mit Zitat antworten
Alt 04-09-2004, 12:38   #2 (permalink)
Definitionssache
 
Benutzerbild von dburucu
 
Registriert seit: Apr 2003
Ort: Braunschweig
Beiträge: 2.433
ehm ist das ne Hausaufgabe?

also die Technik heißt ja bubble-sort, wenn ich mich nicht irre:

hier findest Du die Sortierung:

ActionScript:
  1. //numerical sorting
  2. tester=[54,6,1,346,32,55,3,66,28]
  3. trace("original array :"+tester);
  4. tester1=new Array();
  5. array.prototype.bubble=function(){
  6.         arr_t=new Array();
  7.         count=this.length;
  8.         trace("arrray's length:"+count);
  9.         temp=0;
  10.         for(i=count-1;i>0;i--){
  11.                 for(j=0;j<i;j++){
  12.                         if(this[j]>this[j+1]){
  13.                                 temp=this[j];
  14.                                 this[j]=this[j+1];
  15.                                 this[j+1]=temp;
  16.                         }
  17.                 }
  18.         }
  19.         return this;
  20. }
  21.  
  22. tester1=tester.bubble();
  23.  
  24. trace("bubbleed array:"+tester);

nachzulesen unter:
http://www.actionscript.org/actionsc...ct/more4.shtml

Wieviel schritte Du brauchst, könntest Du ja mit einem Zähler erreichen.
dburucu ist offline   Mit Zitat antworten
Alt 04-09-2004, 15:05   #3 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
Danke.

Wollte das nur möglichst verständlich beschreiben.
( Aus dem Hausaufgabenalter bin ich längst raus )

Ich werd mir das mal bei Zeiten zu Gemüte führen.
juggernart ist offline   Mit Zitat antworten
Alt 06-09-2004, 11:39   #4 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
Naja.
Ich dachte mir schon, das Bubblesort nicht das ist, was ich brauche.
Da muss schon ne intelligentere sortierroutine her
(Bubblesort sortiert ja nur "stur" von vorn nach hinten)
Beispiel:
shuffled array :4,3,2,1
Bubblesort-Züge:
3,4,2,1
3,2,4,1
3,2,1,4
2,3,1,4
2,1,3,4
1,2,3,4

sind also sechs Züge, zwei wären aber ausreichend:
1,3,2,4
1,2,3,4
juggernart 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:01 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele