Ergebnis 1 bis 20 von 24

Thema: Algorithmus zum anordnen von Gegenstaende...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Boah, was Text!
    (Ich hab übrigens die Lösung in meinen älteren Beitrag reineditiert)

    Zitat Zitat von Kelven
    Hm ja, von oben anfangen sollte auch gehen, so genau kenne ich mich mit der Effizienz von Sortieralgorithmen nicht aus. Bei der kleinen Menge Datein beim Makern macht es aber wohl keinen Unterschied.
    Leider geht es von "unten" garnicht. Nochmal zum Stau-Beispiel: Platz 1, 2,3, 5 und 6 sind besetzt. Platz 4 frei. Auto 6 kann nicht fahren. Auto 5 geht an Stelle 4. Auto 3 bis 1 sind korrekt vorne.
    Aber jetzt müsste Auto 6 fahren, denn Platz 5 ist frei geworden. Seine Fork ist aber schon vorbei, bleibt also stehen. Andersrum geht das Auffahren auch nur dann, wenn man nach dem Weiterfahren auch die nächste Lücke beachtet: Auto 1, 2 und 3 bleiben stehen. Auto 5 schließt auf, fährt aber nicht weiter, denn Platz 3 ist voll. Auto 6 fährt auf Platz 5. Da er weiterfahren könnte, muss man auch Platz 4 überprüfen. Weil dieser frei ist, muss er auch dorthin fahren.

    Insgesamt also nicht so einfach wies am Anfang scheint.

    Zitat Zitat von Kelven
    Mit meinen neugewonnenen Makerkenntnissen hab ich jetzt nochmal versucht den Algorithmus zu überarbeiten. Der Faulheit halber schreibe ich das aber wieder in Pseudocode.
    Jo, das mit den Pointern sieht richtig aus. Nur:
    wenn 0 < Variable23 < Variable24 wird der Schlalter nicht aktiviert. Bei teils vorsortierten Feldern kann das durchaus passieren.
    Außerdem muss beim Tauschen die eine Variable zwischengespeichert werden, weil sie sonst überschrieben wird. Die erste Variable erhält den Wert der zweiten. Aber welchen Wert bekommt die zweite Variable, den Wert der ersten gibt es ja nicht mehr!?
    Auch wird der Sortiervorgang leider nicht funktionieren. Wenn zum Beispiel Zahl sechs (10 Einheiten groß) und Zahl fünf (18 Einheiten groß) gleich am Anfang sortiert werden, wird eine von beiden als die kleinere definiert (10 Einheiten groß) und deshalb nachher nicht mehr beachtet auch wenn Zahl zwei viel kleiner ist. So sieht es zumindest meinem Wissensstand nach aus.

    @übelster Held
    ..kann sein. Sorry, hab da kein Durchblick.

  2. #2
    @CapSeb
    Zitat Zitat
    Leider geht es von "unten" garnicht.
    Ne, das kann nicht sein, ich hab das schon seit Ewigkeiten so bei meinen Spielen gemacht. Klappte ohne Probleme. Die Liste wird durch den Switch solange durchlaufen bis nicht getauscht wurde. Man hat zwar mehr Durchläufe, aber bei der geringen Datenmenge geht das nicht auf die Performance.

    Zitat Zitat
    wenn 0 < Variable23 < Variable24
    Wenn dieser Fall eintritt steht Variable24 an der richtigen Stelle. Es soll ja von klein nach groß sortiert werden (und die Nullen ans Ende).

    Zitat Zitat
    Außerdem muss beim Tauschen die eine Variable zwischengespeichert werden, weil sie sonst überschrieben wird. Die erste Variable erhält den Wert der zweiten. Aber welchen Wert bekommt die zweite Variable, den Wert der ersten gibt es ja nicht mehr!?
    Die beiden Testvariablen werden nicht überschrieben und die weise ich dann den Inventarvariablen zu. Deswegen ist ein Zwischenspeichern nicht nötig (da sie ja schon zwischengespeichert sind).

    Zitat Zitat
    Auch wird der Sortiervorgang leider nicht funktionieren. Wenn zum Beispiel Zahl sechs (10 Einheiten groß) und Zahl fünf (18 Einheiten groß) gleich am Anfang sortiert werden, wird eine von beiden als die kleinere definiert (10 Einheiten groß) und deshalb nachher nicht mehr beachtet auch wenn Zahl zwei viel kleiner ist. So sieht es zumindest meinem Wissensstand nach aus.
    Im Maker hat das bei mir allen Anschein nach funktioniert. Es wird auch bei diesem Algorithmus solange von vorne angefangen, bis nicht getauscht wurde.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •