Sortieren von Array

HansMeiser

Mitglied
Guten Abend Leute,
Ich lunger hier schon eine Weile rum und habe meine hobbymäßigen Java-Probleme bisher ganz gut selber lösen können. Im Moment hab ich aber einen kleinen Blackout der mich wahnsinning macht und ich hoffe ihr könnt mir da aushelfen.


Das Programm an dem ich arbeite soll einfach nur ein Array der größe n sortieren; Werte aufsteigend vom kleinsten zum größten.

Mein Code ist größtenteils ok!

Java:
class aufgabe2a{

public static void main(String[] args){
int[] array = { 5, 4, 3, 1, 0 };
int tmp=0;

	for (int count=0; count<array.length;count++){
		
		for(int next=count+1; next<array.length;next++){

	if(array[count]<=array[next])
		count++;
	else
		{tmp=array[count];
		array[count]=array[next];
		array[next]=tmp;}
		if(count==0)
			count++;
		else
			count--;
			}}
	
	
	System.out.println(array[0]);
	System.out.println(array[1]);
	System.out.println(array[2]);
	System.out.println(array[3]);
	System.out.println(array[4]);
	}
	
	}

Bei allen anderen Werten für das Array wird es korrekt sortiert. Diese Sequenz gibt jedoch einen Output von: 10345.

Warum packt er die Null nicht an den Anfang?

Und nebenbei, kann ich die Werte eines Arrays auch mit einem einzigen Befehl ausgeben statt mit der Anreihung von print Befehlen? In den Vorlesungsmaterialien hab ich dazu bisher noch nichts gefunden.

(enhanced-for Schleife wäre eine Idee meinerseits, aber keine Ahnung ob man das dafür benutzt):bahnhof:
 
Zuletzt bearbeitet von einem Moderator:

HansMeiser

Mitglied
Vielen Dank schonmal für den Hinweis! Im Link hab ich ja auch schonmal den Befehl wie ich das ganze mit einem einzigen print-Befehl wiedergeben kann.

In Praxis würde man sicherlich den von dir empfohlenen sort Befehl nutzen, allerdings habe ich dieses Prog von Vorlesungsfolien einer Uni und ich denke es geht darum, dass man generell erstmal in die Denkart von Programmieren reinkommt und deshalb nur die grundlegendsten Befehle nutzt.

Mit dem sort-Befehl ist mir schon geholfen,wenn jemand noch der Vollständigkeit halber auf den Fehler in meinem Code stößt wäre ich sehr dankbar.
 

Hobbes

Aktives Mitglied
Das Problem ist, dass du ständig den Wert der count-Variable veränderst. Was du damit erreichen willst, ist mir nicht klar. Schaue dir mal mit einem Debugger an, wann welche Werte miteinander verglichen werden.

Bei allen anderen Werten für das Array wird es korrekt sortiert

Das stimmt übrigens nicht. Es gibt genug andere Beispiele, in denen dein Code auch nicht funktioniert ;)

Hier mal funktionierender Code

Code:
import java.util.Arrays;

public class MainClass {
  public static void main(String[] args) {

    int[] array = { 5, 4, 3, 1, 0 };
    System.out.println("Unsortierte Liste: " + Arrays.toString(array));

    for (int count = 0; count < array.length; count++) {
      for (int next = count + 1; next < array.length; next++) {
        if (array[count] > array[next]) {
          int tmp = array[count];
          array[count] = array[next];
          array[next] = tmp;
        }
      }
    }

    System.out.println("Sortierte Liste:   " + Arrays.toString(array));
  }

}
 

HansMeiser

Mitglied
Yoo danke sehr Hobbes, der Code funktioniert super!

Die Idee dahinter war, dass ich die count variable für die Position im Array verwenden wollte; next ist dabei immer der darauffolgende Wert im Array.

Durch Einsatz dieser beiden Variablen als Index sollten die Werte dann ausgetauscht werden...
Zur besseren Verständlichkeit poste ich mal die Aufgabe mit den Anforderungen an den Code.

Gegeben ist ein Array der Länge n, das unterschiedlich große Zahlen enthält. Ziel ist es, den Inhalt des Arrays der Größe nach aufsteigend zu sortieren. Schreiben Sie ein Programm, das für die Sortierung den folgenden Algorithmus benutzt:

Eingabe: ein Array
Starte am Anfang des Arrays
solange position nicht am Ende:
vergleiche diesen (a) und nächsten (b) Wert:
falls a <= b:
gehe nach rechts
sonst:
vertausche a und b
falls position = Anfang:
gehe nach rechts
sonst:
gehe nach links

Eure Lösungsvorschläge sind natürlich viel effizienter als der Algorhitmus der Universität. So langsam zweifel ich ein bisschen daran ob ich mich weiter an deren Vorlesungen orientieren sollte...:pueh:
 
S

SlaterB

Gast
bei deinen eingebauten Fehlern solltest du es noch eher vermeiden, bei anderen zu zweifeln ;)

die Aufgabe so wie du sie postest ist bisschen undeutlich, welches 'sonst' zu welchem 'falls' gehört,
aber mehrfach count in einem Durchlauf zu erhöhen, dazu noch in der for-Schleife gar ein drittes Mal, das kann ja nicht gemeint sein

so:
Java:
        int count = 0;
        while (count < array.length - 1)
        {
            if (array[count] <= array[count + 1])
                count++;
            else
            {
                tmp = array[count];
                array[count] = array[count + 1];
                array[count + 1] = tmp;

                if (count == 0)
                    count++;
                else
                    count--;
            }
        }
sortiert es bei mir auch dein Beispielarray,
vielleicht nicht das Optimum an Sortierung in der Welt des 21. Jahrhunderts, aber eine gute Aufgabe um zu üben,
was dir anscheinend noch sehr gut tun würde, rein objektiv festgestellt, soll keine negative Wertung sein

solche Algorithmen verstehen, (korrekt) programmieren können, das wäre ein wertvoller Lernerfolg,
nur nachschlagen und abschreiben kann jeder (na gut, da kann man auch noch Fehler machen..)


übrigens ist dein Code schlecht formatiert, siehst du Zeile 14 bis 21 als Einheit zum else in Zeile 13 in deinem ersten Posting an? die Klammern sprechen eine andere Sprache, die sind entscheidend!
 
Zuletzt bearbeitet von einem Moderator:

HansMeiser

Mitglied
solche Algorithmen verstehen, (korrekt) programmieren können, das wäre ein wertvoller Lernerfolg,
nur nachschlagen und abschreiben kann jeder (na gut, da kann man auch noch Fehler machen..)


übrigens ist dein Code schlecht formatiert, siehst du Zeile 14 bis 21 als Einheit zum else in Zeile 13 in deinem ersten Posting an? die Klammern sprechen eine andere Sprache, die sind entscheidend!


Also bei dem Lösen der Aufgaben merke ich schon, dass es mir weit mehr für das Programmieren bringt als alles andere, daher hab ich meine Informatikfreunde auch um die Übungs Folien ihrer Uni gebeten. Ausserdem merke ich jetzt schon, dass die Anmeldung hier im Forum mich schnell weiterkatapultieren wird durch das sezieren eigener Fehler und Patzer anderer Leute. :rtfm:

Das ganze mache ich allerdings erst 2 Wochen und mir fängt nach ner Zeit an heiß im Kopf zu werden und ich blick kaum noch durch meinen eigenen Code durch.
Beim Draufblicken am nächsten Tag hab ich den Fehler auch direkt erkannt...so eine Pause tut schon gut.

Hoffentlich wird das schnell besser, im Beruf kann man sich ja bestimmt nicht erlauben erst nen Tag später fehler in einer Klasse oder so zu finden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
L Array sortieren Java Basics - Anfänger-Themen 4
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
A Array sortieren Java Basics - Anfänger-Themen 1
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
W Array sortieren Java Basics - Anfänger-Themen 3
S array sortieren Java Basics - Anfänger-Themen 7
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Methoden int-Array absteigend sortieren Java Basics - Anfänger-Themen 8
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
D Erste Schritte array aufsteigend sortieren und ausgeben Java Basics - Anfänger-Themen 17
C Werte im Array sortieren Java Basics - Anfänger-Themen 5
A Input/Output 2-dimensionales array sortieren Java Basics - Anfänger-Themen 3
J Array nach häufigkeit sortieren Java Basics - Anfänger-Themen 4
S Strings im Array nach Namen sortieren Java Basics - Anfänger-Themen 11
E Array sortieren, es will nicht Java Basics - Anfänger-Themen 6
B Problrm beim Array sortieren Java Basics - Anfänger-Themen 0
S Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 3
G Array mit BubbleSort sortieren Java Basics - Anfänger-Themen 2
F Array mit Zufallszahlen sortieren Java Basics - Anfänger-Themen 7
N Array sortieren Java Basics - Anfänger-Themen 6
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
L Array Sortieren Java Basics - Anfänger-Themen 3
K 2D-Array sortieren Java Basics - Anfänger-Themen 7
I Objekte in einem Array sortieren Java Basics - Anfänger-Themen 19
K Array sortieren Java Basics - Anfänger-Themen 19
P String Sortieren in einem Array Java Basics - Anfänger-Themen 7
T Strings mit compareto vergleichen und array sortieren Java Basics - Anfänger-Themen 14
B Array nach dem Alphabet sortieren Java Basics - Anfänger-Themen 11
J Array mit Objekten sortieren Java Basics - Anfänger-Themen 11
S Array sortieren NULL oder Empty ignorieren. Java Basics - Anfänger-Themen 9
S Array sortieren und ausgeben Java Basics - Anfänger-Themen 3
C zweidimensionales Array sortieren Java Basics - Anfänger-Themen 6
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
R 2D Array sortieren Java Basics - Anfänger-Themen 11
A String-Array lexikographisch sortieren Java Basics - Anfänger-Themen 6
A Array einer eigenen Klasse sortieren Java Basics - Anfänger-Themen 11
J 2D Array mit Zeilenverschiebung Sortieren Java Basics - Anfänger-Themen 15
B Zufällige Zahlen in Array sortieren Java Basics - Anfänger-Themen 18
c_sidi90 Array mit Bubblesort sortieren Java Basics - Anfänger-Themen 8
D OOP mit compareTo Array sortieren (aus zwei Klassen) Java Basics - Anfänger-Themen 3
E Array Sortieren Java Basics - Anfänger-Themen 3
B Array durchlaufen und sortieren Java Basics - Anfänger-Themen 9
L Einzeiler - String Array sortieren Java Basics - Anfänger-Themen 16
J Array aufsteigend sortieren Java Basics - Anfänger-Themen 10
D Array nach ungerade zahlen sortieren Java Basics - Anfänger-Themen 6
A Sortieren von Zahlen in einem Array Java Basics - Anfänger-Themen 13
T Zahlen in ARRAY Sortieren Java Basics - Anfänger-Themen 10
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
N Array sortieren - Java Basics - Anfänger-Themen 7
T Array mit Integern sortieren Java Basics - Anfänger-Themen 9
M Array anders sortieren, aber die Reihenfolge beibehalten Java Basics - Anfänger-Themen 4
kulturfenster Array mit Strings sortieren Java Basics - Anfänger-Themen 7
D Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 5
G Array List sortieren / auswerten Java Basics - Anfänger-Themen 24
B 2D-Array (Tabelle) alphabetisch sortieren Java Basics - Anfänger-Themen 6
S array nach 2 kriterien sortieren Java Basics - Anfänger-Themen 3
R Array sortieren Java Basics - Anfänger-Themen 12
G 2D-Array sortieren Java Basics - Anfänger-Themen 11
M ArrayList in Array, dann sortieren Java Basics - Anfänger-Themen 15
R Array sortieren Java Basics - Anfänger-Themen 2
B 2D Array sortieren Java Basics - Anfänger-Themen 15
I Array sortieren oder Tabelle sortieren ? Java Basics - Anfänger-Themen 2
M 2-dimensionales Array sortieren Java Basics - Anfänger-Themen 2
R String-Array sortieren Java Basics - Anfänger-Themen 12
P Array verkleinern und sortieren Java Basics - Anfänger-Themen 11
I Zahlen in Array schreiben und dann sortieren Java Basics - Anfänger-Themen 7
G float-Array _ohne_ Arrays.sort sortieren Java Basics - Anfänger-Themen 5
P Array füllen & sortieren Java Basics - Anfänger-Themen 3
J Array sortieren Java Basics - Anfänger-Themen 4
M Array mit Werten füllen und sortieren Java Basics - Anfänger-Themen 2
O Array sortieren Java Basics - Anfänger-Themen 3
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben