Sortieren von Zahlen in einem Array

Status
Nicht offen für weitere Antworten.

Angelika_25

Bekanntes Mitglied
Hallo, ich habe folgenden Code, der noch nicht vollständig funktioniert. Ich möchte, dass die Zahlen aufsteigend sortiert sind. Normalerweise gibt es eine externe Java Klasse, die das erledigen sollte, aber laut Übungsblatt muss das sozusagen manuell gemacht werden.
Mein Code:
Code:
import static Prog1Tools.IOTools.*;
public class Aufgabe_21 {
	public static void main (String [] args) {
		int count=readInteger("Wie viele Zahlen willst du sortieren? ");
		int [] zahl=new int [count];
		
		for (int i=0; i<zahl.length; i++) {
			zahl[i]=readInteger(i+1+". Zahl: ");
		}
		
		for (int k=0; k<zahl.length; k++) {
			System.out.print(zahl[k]+" ");
		}
	
		
		for (int o=1; o<count-1; o++) {
			int j=0;
			
			while (j<count-1) {
				if (zahl[j]>zahl[j+1]) {
					int hilf=3;
					hilf=zahl[j+1];
					zahl[j+1]=zahl[j];
					zahl [j]=hilf;
					
					}
						j++;
			}
		}
		}

}
Ich denke, mit dieser Zeile stimmt etwas nicht:
Code:
for (int o=1; o<count-1; o++) {
Der ganze Code, der unten drunter steht, soll count-1 mal wiederholt werden. Deswegen meine For-Schleife.
Der Code funktioniert, aber die Zahlen werden nicht sortiert. Was stimmt an meiner Schleife nicht??

Liebe Grüße
 

0x7F800000

Top Contributor
Angelika_25 hat gesagt.:
Ich denke, mit dieser Zeile stimmt etwas nicht:
Code:
for (int o=1; o<count-1; o++) {
Der ganze Code, der unten drunter steht, soll count-1 mal wiederholt werden. Deswegen meine For-Schleife.
Der Code funktioniert, aber die Zahlen werden nicht sortiert. Was stimmt an meiner Schleife nicht??
Hast es doch selbst beantwortet. Setz doch mal für count 1 ein , und überleg dir, wie oft der code ausgeführt wird
Dann setze für count 2 ein, und überlege nochmal.
:autsch:

Du hast das Intervall vorne und hinten jeweils um 1 verkürzt...
von solchen scherzen wie
Code:
int o
als Bezeichner ist dringend abzuraten, weil man es mit der 0 schwer auseinanderhalten kann.

von solchen scherzen wie
Code:
o=1;
ist auch dringend abzuraten, weil normalerweise kein Mensch bei 1 loszählt, da kriegt man nur nen Knoten im Hirn vor lauter +-1-Indexverschieberei.

von solchen scherzen wie
Code:
count-1;
ist wieder abzuraten, siehe Bemerkung 2

und schließlich:
Code:
count
ist sehr mies wenn man über ein array iteriert. Man kann ja auch direkt array.length nehmen, dann weiß jeder sofort was es heißt und was da passiert.
 

ARadauer

Top Contributor
ich find jetzt schnell kein beispeil wenns nicht funktioniert, aber generell würd ich for (int o=0; o<count-1; o++) schreiben...

beschreibe mal genau was du machen willst... du iterierst länge mal über das array und vertauscht bei bedarf, richtig?

warum so oft? du hast zb ein array mit der länge 10, das bereits sortierst ist... du würdest trotzdem 100 mal vergleichen...
wie wärs so... du läuft nur einmal drüber und merkst dir ob du vertauscht hast, wenn ja wiederholst du... sonst hörst auf...
 

ARadauer

Top Contributor
Code:
public static int[] sort(int[] values){ //bubbble sort
      int[] newArray = values.clone();
     
      boolean ready=false;

      while(ready==false){
         //ist ist noch nicht sortiert! also false
         ready=true;
         for(int i=0;i<newArray.length-1;i++){

            if(newArray[i]>newArray[i+1]){
               int temp=newArray[i+1];
               newArray[i+1]=newArray[i];
               newArray[i]=temp;
               ready=false;
            }
         }
      }
      return newArray;
   }
 

Angelika_25

Bekanntes Mitglied
Also das ist die Aufgabe:

Schreiben Sie ein Programm, das zuerst Zahlen von der Tastatur einliest, diese dann der Größe nach sortiert und auf dem Bildschirm ausgibt. Setzen Sie dazu folgenden Algorithmus um:
- Lesen Sie die Anzahl der zu sortierenden Zahlen in die int-Variable count ein.
- Erzeugen Sie ein eindimensionales int-Feld zahl mit count Elementen.
- Lesen Sie nun die Elemente des Felds von der Tastatur ein.
- Wiederholen Sie die folgenden Schritte count-1 mal:
- Initialisieren Sie die int-Variable j mit 0 und wiederholen Sie die folgenden Schritte,
solange j kleiner als count-1 ist:
- Ist das Element an Stelle j des Felds zahl größer als das an Stelle j+1, so vertauschen Sie die beiden
Elemente
- Erhöhen Sie j um 1.
- Geben Sie nun die Elemente des Felds auf dem Bildschirm aus.


Ich habe die unglücklichen Ausdrücke also nicht erfunden ;).


Wie sollte ich denn meinen Code jetzt ändern, ich denke wirklich, dass nur etwas an der For-Schleife, die ich angegeben habe, etwas nicht stimmt. Das Schlimme an solchen Übungsaufgaben ist immer, dass man kaum selbst entscheiden kann/darf, wie man es macht.

Liebe Grüße
 

Angelika_25

Bekanntes Mitglied
Das ist eine stinknormale Übungsaufgabe aus einem Buch....

Ist denn soviel falsch an meinem Code?
Es funktioniert ja das Programm, bis auf das Sortieren...
 

Murray

Top Contributor
Angelika_25 hat gesagt.:
- Wiederholen Sie die folgenden Schritte count-1 mal:
Wie Andrey schon schrieb: das ist nicht das gleiche wie
Code:
for (int o=1; o<count-1; o++) {
Hier läuft o nämlich von 1 bis count-2; der folgende Block wird also nur (count-2)-mal ausgeführt. Also entweder o bei 0 beginnen lassen (dann liefe o von 0 bus count-2) oder in der Fortsetzungsbedingung <= verwenden (dann liefe o von 1 bis count-1).
 

Angelika_25

Bekanntes Mitglied
Jetzt habe ich
Code:
for (int o=1; o<count-1; o++) {
durch das ersetzt:
Code:
for (int o=0; o<=count-1; o++) {
,
aber das funktioniert immernoch nicht. Er bringt keine Fehlermeldung, aber die Zahlen werden nicht sortiert...

Ich wette, das ist wieder so ein dabbischer mini-Fehler, den man nicht findet..... oder zumindest ich nicht...
 

srea

Bekanntes Mitglied
Kannst du denn nochmal deinen Code schreiben, wie du ihn jetzt hast?

Vielleichtist dein Fehler, das du die Sachen hinschreibst nachdem das Array gefüllt wurde aber vor dem sortieren? Das ist nämlich beim Code im ersten Post das Problem!
 

Angelika_25

Bekanntes Mitglied
Das ist mein Code:
Code:
import static Prog1Tools.IOTools.*;
public class Aufgabe_21 {
   public static void main (String [] args) {
      int count=readInteger("Wie viele Zahlen willst du sortieren? ");
      int [] zahl=new int [count];
      
      for (int i=0; i<zahl.length; i++) {
         zahl[i]=readInteger(i+1+". Zahl: ");
      }
      
      for (int k=0; k<zahl.length; k++) {
         System.out.print(zahl[k]+" ");
      }
   
      
      for (int o=1; o<count-1; o++) {
         int j=0;
         
         while (j<count-1) {
            if (zahl[j]>zahl[j+1]) {
               int hilf=3;
               hilf=zahl[j+1];
               zahl[j+1]=zahl[j];
               zahl [j]=hilf;
               
               }
                  j++;
         }
      }
      }

}
 

srea

Bekanntes Mitglied
Die Zahlen werden nicht sortiert ausgegeben, da nach dem sortieren gar nix mehr geschrieben wird.

Du holst die Array Größe -> die Array Zahlen -> Gibst das Array(unsortiert, in der Reihenfolge wie es eingegeben wurde) aus -> sortierst -> ENDE

Er macht ja nichts mit dem sortierten.

Ganz am Ende nochmal
Code:
	      for (int k=0; k<zahl.length; k++) {
	         System.out.print(zahl[k]+" ");
	      }


Dann sollte das unsortierte und dann das sortierte da stehen?!
 

ARadauer

Top Contributor
ich bin auch der meinung, dass der code funktioniert... die zahlen werden sortiert...

wieso meinst du, dass die zahlen nicht sortiert werden?
 

Angelika_25

Bekanntes Mitglied
Es tut mir Leid, dass ich eure kostbare Zeit mit so dummen Sachen verschwendet habe. Ihr habt natürlich Recht, der Code der For-Schleife hat gestimmt, er war nur an der falschen Stelle!!!


Vielen Dank trotzdem für eure superschnelle und gute Hilfe!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
D JTable Probleme beim Sortieren von Zahlen. Java Basics - Anfänger-Themen 6
T ArrayList (Zahlen) aufsteigend sortieren mit Duplikaten Java Basics - Anfänger-Themen 8
M Sortieren von Zahlen: Code ohne Fehler, funktioniert trozdem nicht Java Basics - Anfänger-Themen 2
J 4 Zahlen sortieren Java Basics - Anfänger-Themen 10
L 3 Zahlen einlesen und nach der Größe Sortieren Java Basics - Anfänger-Themen 5
A Erste Schritte Zahlen aus datei sortieren Java Basics - Anfänger-Themen 4
B Zufällige Zahlen in Array sortieren Java Basics - Anfänger-Themen 18
D Array nach ungerade zahlen sortieren Java Basics - Anfänger-Themen 6
T Zahlen in ARRAY Sortieren Java Basics - Anfänger-Themen 10
M frage zu:Zahlen sortieren Java Basics - Anfänger-Themen 17
P Zahlen aus String auslesen und dann sortieren. Java Basics - Anfänger-Themen 2
T Zahlen mit Bubblesort sortieren Java Basics - Anfänger-Themen 2
E Drei zahlen sortieren und in richtiger Reihenfolde ausgeben. Java Basics - Anfänger-Themen 15
W Datentyp Zahlen sortieren Java Basics - Anfänger-Themen 12
V Zahlen sortieren und String zuweisen Java Basics - Anfänger-Themen 7
G Zahlen in einen Vector sortieren Java Basics - Anfänger-Themen 2
V Zahlen sortieren Java Basics - Anfänger-Themen 2
T Zahlen Umkehren / Manipulieren / Sortieren Java Basics - Anfänger-Themen 18
I Zahlen in Array schreiben und dann sortieren Java Basics - Anfänger-Themen 7
G Zahlen sortieren Java Basics - Anfänger-Themen 3
S Drei Zahlen sortieren Java Basics - Anfänger-Themen 4
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
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
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
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
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
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
K Java sortieren. Java Basics - Anfänger-Themen 7
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Sortieren Java Basics - Anfänger-Themen 1
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
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
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
L Array sortieren Java Basics - Anfänger-Themen 4
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
B Liste sortieren? Java Basics - Anfänger-Themen 4
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 Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
B Suchen und sortieren Java Basics - Anfänger-Themen 10
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
E ArrayList sortieren Java Basics - Anfänger-Themen 16
L Methode zum sortieren Java Basics - Anfänger-Themen 1
L Methode zum sortieren Java Basics - Anfänger-Themen 1
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
A Array sortieren Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
Tommy135 Erste Schritte JavaDoc Sortieren Java Basics - Anfänger-Themen 5
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
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
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
I <List> sortieren Java Basics - Anfänger-Themen 2
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
I Sortieren nach Priorität Java Basics - Anfänger-Themen 3
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
W Array sortieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben