Java で、挿入ソートを考える。

import java.util.*; public class Sort { private Sort() { } public static void output(List data) {
for(int i = 0, n = data.size(); i < n; i++)
System.out.print(data.get(i) + ", "); System.out.println(); } public static void insert(List data) {
for(int i = 0, n = data.size(); i < n; i++ ) {
  int j = i;
  while(j > 0 && data.get(i) < data.get(j - 1))
    j--;
  int tmp = data.get(i);
  for(int k = i; k > j; k--)
    data.set(k, data.get(k - 1));
  data.set(j, tmp);
  output(data);
}
} public static void main( String[] args ) {
List<Integer> data = new ArrayList<Integer>();

data.add(9); // 0
data.add(4); // 1
data.add(5); // 2
data.add(2); // 3
data.add(3); // 4
data.add(5); // 5
data.add(3); // 6
data.add(3); // 7
data.add(8); // 8
data.add(1); // 9

Sort.output(Sort.insert(data));
} }

コンパイルは

javac Sort.java

実行は

java Sort