Bubblesort |
23.05.2009, 09:01 | Auf diesen Beitrag antworten » |
GastAlgo | Bubblesort Ich habe hier folgenden BubbleSort: public static void BubbleSort(int[]a) { for(int i=a.length-1; i>0; i--) { boolean getauscht=false; for(int j=0; j<i; j++) { if(a[j]>a[j+1]) { int h=a[j]; a[j]= a[j+1] a[j+1]=h; getauscht=true; } } if(!getauscht) return; } } So, was ich jetzt nicht verstehe ist die erste for Schleife. Mir ist klar, das nach einem Durchgang das letzte Element nicht mehr betrachtet werden muss. Dies geschieht dachte ich mir durch das i--. Aber warum muss ich auch von der a.length eins abziehen? Ich muss doch im ersten Schritt noch das ganze Array betrachten, und kann nicht schon das erste weglassen! Was ist da denn mein Denkfehler? |
|
|
23.05.2009, 15:53 | Auf diesen Beitrag antworten » |
pi_mal_daumen | Hi! Dein Denkfehler ist der, dass das erste Arrayelement den Index 0 hat. Ein Array mit n Elementen hat als die Indizes 0, 1, ..., n-1 Wenn du noch einen Index n hättest, dann hätte das Array n+1 Elemente, eben weil du nicht bei 1 anfängst zu zählen, sondern bei 0. Wenn du 3 (=n) Äpfel hast, dann hast du entweder Apfel1, Apfel2 und Apfel3, oder aber Apfel0, Apfel1 und Apfel2. |
30.05.2009, 11:26 | Auf diesen Beitrag antworten » |
GastAlgo | Ok, vielen Dank, jetzt hab ich das verstanden :)! |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |