Aufgabe: Zahlen sortieren

  • Schönen guten Abend! :)
    Jeder der nicht weiß was er/sie mit seiner/ihrer Zeit anfangen soll, kann sich ja mal an folgender Aufgabe versuchen: Es sollen die mindestens benötigten Sortierung-Schritte ermittelt werden, um einen String zu sortieren.

    Der zu sortierende String besteht aus positiven sowie negativen Ganzzahlen von 0 bis x. Dabei ist jeweils die positive oder die negative Zahl vertreten. Das bedeutet, dass im String z.B. nur eine „2“ vorkommen kann. Entweder als positive Version „+2“ oder negative Version „-2“. Aber niemals beide zusammen. Als Beispielstring sei mal hier „8 0 3 1 6 5 -2 4 7“ genannt. Für die Sortierung gibt es ein bestimmtes Verfahren welches eingehalten werden muss. Im Grunde lässt sich dies in 4 Schritten erklären. Im Folgenden wird auf den oberen genannten Beispielstring zurückgegriffen.

    1. Schritt:
    Zuerst wird sich ein Teilstring ausgesucht, nehmen wir einfach mal die Zahlen „3 1 6 5“ (ab der 2ten Position im Beispielstring).

    2. Schritt:
    Jetzt werden die Vorzeichen aller Zahlen getauscht. Positive Zahlen werden zu negativen Zahlen und anders herum: „-3 -1 -6 -5“

    3. Schritt:
    Nun müssen die Zahlen in ihrer Reihenfolge einmal umgedreht werden: „-5 -6 -1 -3“

    4. Schritt:
    Der Teilstring wird wieder in den String eingefügt: „8 0 -5 -6 -1 -3 -2 4 7“

    Alle 4 Schritte zusammen ergeben einen Sortierung-Schritt. Am Ende sollten alle Ziffern positiv und nach der Größe sortiert sein. Unser Beispielstring sollte also so aussehen: „0 1 2 3 4 5 6 7 8“. Die Frage ist nun, wie viele Schritte sind nun mindestens notwendig, um dies zu erreichen?

    Ich wünsche viel Spaß bei der Lösung dieser Aufgabe! Haltet am besten euren Algorithmus so, dass verschiedene Eingaben entgegengenommen werden können. Für den Abschluss hier einmal noch ein komplettes Beispiel, wie ein String sortiert werden könnte um auf's Endergebnis zu kommen:

    0 +3 +1 +6 +5 -2 +4 7
    0 -5 -6 -1 -3 -2 +4 7
    0 -5 -6 -1+2 +3 +4 7
    0 -5 -6 +1 +2 +3 +4 7
    0 -5 -4 -3 -2 -1 +6 7
    0 +1 +2 +3 +4 +5 +6 7

    Die unterstrichenen Zahlen ist der gewählte Teilstring welcher nach den oberen genannten Regeln sortiert wird. Die fetten Zahlen sind jene, die im letzten Sortierung-Schritt verändert wurden. Das + Zeichen vor den positiven Zahlen ist nur für die Formatierung hier im Forum angegeben. ^^

    • Offizieller Beitrag

    Verstehe deine Aufgabenstellung nicht. Du gibst die Schritte vor - somit ist doch jeder gezwungen diesen Alghoritmus zu nehmen. Woher soll da ein eigener Algorithmus kommen?
    Und "Die Frage ist nun, wie viele Schritte sind nun mindestens notwendig, um dies zu erreichen?" halte ich für falsch herum gefragt. Wichtiger wäre doch zu wissen, nach wieviel Sortierschritten ich sicher sein kann, dass der String sortiert ist - also: maximal. :whistling:

  • Genau da liegt der Witz bei. Der Sortieralgorithmus ist bereits vorgegeben. Die Schwierigkeit bei dieser Aufgabe liegt darin, dass sämtliche Möglichkeiten durchgegangen werden müssen, um herauszufinden wie viele Schritte für einen bestimmten Eingabestring unbedingt notwendig sind, um auf das Endergebnis zu kommen. Die Aufgabe wurde bewusst so gewählt, da es sich dabei um eine Herausforderung handeln soll. Also auch für die Cracks hier unter euch haben da sicherlich einiges dran zu tun. Versuch dich doch einfach mal daran @BugFix. ^^