バブルソート(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(); } }