import java.util.Arrays;

/**
 * Algorithm
 *
 * 1] Compare each pair of adjacent elements from beginning
 * of an array and, if they are in reversed order, swap them.
 *
 * 2] If at least one swap has been done, repeat step 1.
 *
 */
public class MyBubbleSort {

	private void sortData(int[] data) {
		boolean swapDone = false;
		do {
			swapDone = false;
			for (int i = 0; i < data.length-1; i++) {
				if (data[i] > data[i+1]) {
					swapDone = true;
					int tmp = data[i];
					data[i] = data[i+1];
					data[i+1] = tmp;
				}
			}
		} while (swapDone == true);
	}

	public static void main(String[] args) {
		int[] data = {5,1,12,-5,16};
		System.out.println(Arrays.toString(data));

		new MyBubbleSort().sortData(data);
		System.out.println(Arrays.toString(data));
	}

}