Warum wird mein Array nicht sortiert ausgegeben?

2 Antworten

Einmal wird die Variable b immer den Wert 1 haben.

Das b++ hat keine Auswirkung, da die Variable b im neuen Schleifendurchgang erneut mit dem Wert 1 angelegt wird.

int b = 1; müsste also vor und außerhalb der Schleife stehen.

Ob dein Suchalgorithmus so viel Sinn ergibt, weiß ich gerade nicht. Konnte nach ein kurzen Zeit nicht komplett verstehen. Vielleicht funktioniert der auch so.

  1. Die Variable b ist immer 1.
  2. Der berechnete Tauschpartner ist falsch. Bei einem Array [ 5, 2, 4, 1, 3 ] würdest du z.B. die 3 mit der 5 zweimal tauschen (a: 0 > z: 4, a:4 > z: 0).
  3. Du benötigst mehrere Durchläufe, bei denen jeweils eine spezifische Zahl der Menge genommen und entsprechend sortiert wird (bspw. die kleinste Zahl an den Anfang oder andersherum die größte Zahl an das Ende). Sobald sie richtig sortiert ist, muss sich der zu sortierende Mengenbereich um 1 verringern.

In Pseudocode:

for i in 0 ... numbers.length
  for j in i + 1 ... numbers.length
    if numbers[i] > numbers[j]
      swap(numbers[i], numbers[j])