バブルソート(Bubble Sort)

いまさらですがバブルソートです。

  • 隣り合った要素を比較し、データの大小により交換を行う。
  • O(n2) 回の比較が行われるため遅い。
public class BubbleSort {
	public static void main(String[] args) {
		int data[] = {80, 41, 35, 90, 40, 20, 100};
		long s = System.currentTimeMillis();
		BubbleSort b = new BubbleSort(data);
		b.bubbleSort();
		b.showData();
		System.out.println(System.currentTimeMillis() - s + " ms");
	}
	public BubbleSort(int[] data) {
		this.data = data;
	}
	private int data[] = null;
	public void bubbleSort() {
//		this.showData();
		for (int i=0; i<data.length-1; i++) {
			for (int j=data.length-1; j>i; j--) {
				if (data[j] < data[j-1]) {
					int tmp = data[j];
					data[j] = data[j-1];
					data[j-1] = tmp;
				}
//				this.showData();
			}
		}
	}
	public void showData() {
		for (int value: this.data) {
			System.out.printf("%d ", value);
		}
		System.out.println();
	}
}