Man wählt ein Element nach dem anderen und fügt es jeweils an die richtige Stelle der bereits geordneten Liste ein. Dabei ist allerdings eine Reihe von Tauschvorgän-gen notwendig!
Beispiel:
Code:
import java.awt.*;
import java.util.Random;
public class einfuegen extends java.applet.Applet {
int h[] = new int[101];
public void init() {
int i;
Random r = new Random();
for (i=1; i<=100; i++) {
h[i] = (int) (r.nextDouble()*100);
}
}
public void paint(Graphics g) {
int i;
int j;
int l;
int hilfsvar;
g.setColor(Color.white);
g.fillRect(5,0,500,100);
g.setColor(Color.black);
for (l=1;l<=100;l++) {
g.fillRect(l*5,100-h[l],3,h[l]);
}
for (i=2;i<=100;i++) {
hilfsvar=h[i];
j=i-1;
while ((hilfsvar<h[j]) && (j>0)) {
h[j+1]=h[j];
g.setColor(Color.white);
g.fillRect(j*5,0,3,100);
g.fillRect((j+1)*5,0,3,100);
g.setColor(Color.black);
g.fillRect((j+1)*5,100-h[j],3,h[j]);
j--;
g.setColor(Color.black);
g.fillRect((j+1)*5,100-hilfsvar,3,hilfsvar);
for (int pause=0;pause<100000;pause++) {}
}
h[j+1]=hilfsvar;
}
}
}
Kommentar:
| zurück zu Sortieralgorithmen |