Java - Sortieren durch Einfügen

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