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

import java.util.*;

public class Sort {

  private Sort() {
  }

  public static void output(List<Integer> 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<Integer> 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
トラックバック URL: https://perltips.twinkle.cc/trackback/298
Posted on 2008-02-11 by yas |