Monday, 6 June 2011

Bubble Sort in java


public class BubbleSort {
  private long[] a;

  private int nElems;

  public BubbleSort(int max) {
    a = new long[max];
    nElems = 0;
  }

  //   put element into array
  public void insert(long value) {
    a[nElems] = value;
    nElems++;
  }

  //   displays array contents
  public void display() {
    for (int j = 0; j < nElems; j++)
      System.out.print(a[j] + " ");
    System.out.println("");
  }

  public void bubbleSort() {
    int out, in;

    for (out = nElems - 1; out > 1; out--)
      // outer loop (backward)
      for (in = 0; in < out; in++)
        // inner loop (forward)
        if (a[in] > a[in + 1]) // out of order?
          swap(in, in + 1); // swap them
  }

  private void swap(int one, int two) {
    long temp = a[one];
    a[one] = a[two];
    a[two] = temp;
  }

  public static void main(String[] args) {
    int maxSize = 100; // array size
    BubbleSort arr; // reference to array
    arr = new BubbleSort(maxSize);

    arr.insert(77); // insert 10 items
    arr.insert(66);
    arr.insert(44);
    arr.insert(34);
    arr.insert(22);
    arr.insert(88);
    arr.insert(12);
    arr.insert(00);
    arr.insert(55);
    arr.insert(33);

    arr.display();

    arr.bubbleSort();

    arr.display();
  }
}


No comments: