Keine Ausgabe in der Konsole

Bun17

Neues Mitglied
Ich habe die Aufgabe ein BubbleSort Algorithmus zu schreiben der abwechselnd von klein zu groß sortiert, also Index 0 ist die kleinste Zahl, Index 1 die größte, Index 2 die zweit kleinste, Index 3 die zweit größte usw. Ich habe versucht das Problem zu lösen indem ich einmal einen BubbleSort der ascending Sortiert habe und einen der descending Sortiert, dann habe ich eine Variable k eingeführt, die bestimmen soll ob nun aufsteigend oder absteigend sortiert werden soll. Wenn ich jetzt aber versuche das Programm zu starten kommt in der Konsole keine Ausgabe, obwohl ich alle Fehler die Eclipse mir anzeigt entfernt habe. Ich übersehe also was, kann es aber nicht finden.
Hier der Code:

public class Functionality{
public static void alternateSorting(int[] a)
{
a = new int[] {5,4,6,3,4,9};
int k = 0;
if (k % 2 == 0) {
for (int i = 0; i < a.length; i++)
{
int pos = i;
for (int j = i + 1; j < a.length; j++)
{
if (a[j] < a[pos])
{
pos = j;
}
}
if (pos != i)
{
int swap = a;
a = a[pos];
a[pos] = swap;
}
k++;
}
System.out.println(a);
}else
{ for (int i = 0; i < a.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < a.length; j++)
{
if (a[j] > a[index])
{
index = j;
}
}
if (index != i)
{
int temp = a;
a = a[index];
a[index] = temp;
}
k++;
}
System.out.println(a);;
}
}
}


Ich würde mich über einen Ratschlag freuen.
MfG Bun17
 
Ich habe die Aufgabe ein BubbleSort Algorithmus zu schreiben
Das ist schön.

Bitte Code so posten: [code=Java]Dein Code[/code], das Ergebnis sieht dann so aus:
Java:
public class Functionality {
    public static void alternateSorting(int[] a) {
        a = new int[] { 5, 4, 6, 3, 4, 9 };
        int k = 0;
        if (k % 2 == 0) {
            for (int i = 0; i < a.length; i++) {
                int pos = i;
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j] < a[pos]) {
                        pos = j;
                    }
                }
                if (pos != i) {
                    int swap = a;
                    a = a[pos];
                    a[pos] = swap;
                }
                k++;
            }
            System.out.println(a);
        } else {
            for (int i = 0; i < a.length - 1; i++) {
                int index = i;
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j] > a[index]) {
                        index = j;
                    }
                }
                if (index != i) {
                    int temp = a;
                    a = a[index];
                    a[index] = temp;
                }
                k++;
            }
            System.out.println(a);
            ;
        }
    }
}

Und schon erkennt man auf den ersten Blick, dass z. B. hier
Java:
                    int temp = a;
                    a = a[index];
                    a[index] = temp;
etwas fehlt... Poste den Code bitte nochmal.
 
OK, vergiss es. Hab das mal schnell angepasst. Die Ausgabe eines Arrays funktioniert ein wenig anders:
Java:
import java.util.Arrays;

public class Functionality {
    public static void main(String[] args) {
        alternateSorting(new int[0]);
    }

    public static void alternateSorting(int[] a) {
        a = new int[] { 5, 4, 6, 3, 4, 9 };
        int k = 0;
        if (k % 2 == 0) {
            for (int i = 0; i < a.length; i++) {
                int pos = i;
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j] < a[pos]) {
                        pos = j;
                    }
                }
                if (pos != i) {
                    int swap = a[i];
                    a[i] = a[pos];
                    a[pos] = swap;
                }
                k++;
            }
            System.out.println(Arrays.toString(a));
        } else {
            for (int i = 0; i < a.length - 1; i++) {
                int index = i;
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j] > a[index]) {
                        index = j;
                    }
                }
                if (index != i) {
                    int temp = a[i];
                    a[i] = a[index];
                    a[index] = temp;
                }
                k++;
            }
            System.out.println(Arrays.toString(a));
            ;
        }
    }
}
 

Neue Themen


Zurück
Oben