InsettingSortering.java [Last ned]

/*
 * Programmet en egen metode til å gjennomføre
 * sortering ved innsetting.
 */
import static javax.swing.JOptionPane.*;
import static java.lang.Integer.*;
 
public class InsettingSortering {
 
  public static void main(String[] args) {
    int[] tallTabell = {3,1,9,7,5,5,2,3,1,1,8,1,6,6};
    String utTxt = "Usortert tabell: " + skriv(tallTabell) + "\n";
    sorter(tallTabell);
    utTxt += "Sortert tabell: " + skriv(tallTabell) + "\n";
    tallTabell = sorter2(tallTabell);
    utTxt += "Sortert tabell-2: " + skriv(tallTabell);
    showMessageDialog(null, utTxt);
  }
 
  public static void sorter(int[] tab) {
    int[] nyTab = new int[tab.length];
    for (int i=0; i<tab.length; i++) {
      int innPos = 0;
      while ( tab[i] > nyTab[innPos]  &&  innPos < i )
        innPos++;
      if ( innPos < i )
        for (int j=i; j>innPos; j--)
          nyTab[j] = nyTab[j-1];
      nyTab[innPos] = tab[i];
      System.out.println( skriv(nyTab) );
    }
    tab = nyTab;
    System.out.println("Ferdig: " + skriv(tab));
  }
 
  public static int[] sorter2(int[] tab) {
    int[] nyTab = new int[tab.length];
    for (int i=0; i<tab.length; i++) {
      int innPos = 0;
      while ( tab[i] > nyTab[innPos]  &&  innPos < i )
        innPos++;
      if ( innPos < i )
        for (int j=i; j>innPos; j--)
          nyTab[j] = nyTab[j-1];
      nyTab[innPos] = tab[i];
    }
    return nyTab;
  }
 
  public static String skriv(int[] tab) {
    String txt = "";
    for (int i=0; i<tab.length; i++)
      txt += tab[i] + "  ";
    txt += "\n";
    return txt;
  }
 
}
Kildekode blir vist ved hjelp av GeSHi.