Auswahlsortieren

florian1995

Aktives Mitglied
Hallo bin neu in dem Forum und programmiere erst seit ca. 2 Monaten Java

Ich wollte fragen was ich bei folgendem Programm falsch gemacht habe

Java:
int min;
    	int a[]={2,1,4,6,5,3};
    	int j=0;
    	
    	for(int i=0;i<a.length;i++){
    		min=a[i];
    		j=i;
    		while(j<a.length){
    			
    			if(a[j]<min){
    				min=a[j];
    				
    			}
    			j++;
    			
    			
    		}
    		a[j]=a[i];	
    		a[i]=min;
    	}
    	for(int i=0;i<a.length;i++){
    		System.out.println(a[i]);
    	}

ich bitte um schnelle Hilfe:):):)
 

eRaaaa

Top Contributor
wahrscheinlich das array sortieren? du hast da ein kleinen denkfehler in zeile 18.
j ist zu dem zeitpunkt immer = a.length(was übrigens zu einer arrayindexoutofboundsexception führt), du willst da ja aber eig. eher die werte tauschen?!

Java:
	int min;
	int a[] = { 2, 1, 4, 6, 5, 3 };
	int newMin = 0;
	for (int i = 0; i < a.length; i++) {
	    min = a[i];
	    newMin = i;
	    for (int j = i; j < a.length; j++) {
		if (a[j] < min) {
		    newMin = j;
		}
	    }
	    int tmp = a[i];
	    a[i] = a[newMin];
	    a[newMin] = tmp;
	    System.out.println(Arrays.toString(a));
	}
 
Zuletzt bearbeitet:

florian1995

Aktives Mitglied
ja es soll das array sortieren

wenn ich den srccode ausprobiere gibt er mir folgendes aus

1
2
4
6
5
3

weis nicht woran es liegt

ist auch erst mein zweites sortprogramm
bubble sort is einfach
 

eRaaaa

Top Contributor
funzt noch immer nicht

keine ahnung warum

aber trotzdem danke werds schon noch lernen in der schule ;)

was erwartest du denn, soll man dir antworten bei: "funzt noch immer nicht " ?

a) ich hab oben beschrieben wo dein fehler liegt, du bist darauf noch nicht eingegangen
b) ich hab dir, aufbauend auf deinem programm, ein lösungsvorschlag gepostet: da bist du auch nicht drauf eingegangen
c) man kann garnicht nachvollziehen wie es zu den werten kommt die du "Gestern 10:19" genannt hast ohne code (der selbe code wie aus deinem eingangspost kann es ja wohl nicht sein)
 

Oben