Bräuchte mal Hilfe beim Sortieren der Zahlen

Status
Nicht offen für weitere Antworten.

Kremsn

Mitglied
Wieder mal hab ichs nich hinbekommen, nen Pseudocode in Quellcode zu transformieren.

Hier der Pseudocode für Sortieren durch Einfügen in pascal:

Code:
[B]procedure[/B] Auswahlsort ([B]var[/B] a : sequence) // was ist sequence?
[B]var[/B]
i, j, min : integer:
t: item ; {Hilfsspeicher} //was ist item?
[B]begin[/B]
   [B]for [/B]i := 1 [B]to [/B]N-1 [B]do[/B]
       [B]begin[/B]
          {bestimme die Position min des kleinsten 
            unter den Elementen a[i],...,a[N]}
            min := i;
            [B]for [/B]j:=i+1 [B]to [/B]N [B]do[/B]
             [B]if [/B]a[j].key <a[min].key
                [B]then [/B]min := j;
              {vertausche Elemente an Position i und Position min}
              t := a[min]
              a[min] = a[i];
              a[i] := t;
         [B]end[/B]
[B]end     [/B]

Und hier mein Java_code dazu:
Java:
public class Auswahlsort {
	
	static int[] auswahlsort(int[] array){
		
		int i, j , min;
		int t;
		
		for (i = 0; i <array.length; i++){
			min = i;
			for (j = i+1; j <array.length; j++){
				
				if (array[j] < array[min]){
					min = j;
					t=array[min];
					array[min] = array[i];
					array[i] = t;
				}
			}
		}
		return array;
		
	}


public static void main(String[] args){
	
	int[] Auswahlsort1 = auswahlsort(new int[]{15,2,43,17,4,8,47} );
	System.out.println(Auswahlsort1);
}
}


kommt nur Grütze raus wenn ich den ausführ. Vielleicht weiß wer weiter?thx
 
S

SlaterB

Gast
im Originalcode ist wohl
> for j:=i+1 to N do
> if a[j].key <a[min].key
> then min := j;

eine abgeschlossene Schleife, danach wird nur EINMAL getauscht (abgesehen von der äußeren i-Schleife)

-----

in deinem Code vertauschst du du array evtl. mehrere Male mit array[j], wobei gar nicht geklärt ist, ob array größer oder kleiner array[j] ist,
es wird nur array[j] mit array[min] verglichen
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben