public class BubbleSort {
	public static void main(String[] args) {
		for (int i = 0; i < args.length; i++) {
			System.out.print(args[i] + " ");
		}
		bubbleSortRecursive(args, args.length - 1);
		System.out.println();
		for (int i = 0; i < args.length; i++) {
			System.out.print(args[i] + " ");
		}
	}
	
	public static void bubbleSort(String[] list) {
		for (int i = list.length - 1; i > 1; i--) {
			for (int j = 0; j < i; j++) {
				if (list[j].compareTo(list[j + 1]) > 0) {
					String temp = list[j];
					list[j] = list[j + 1];
					list[j + 1] = temp;
				}
			}
		}
	}
	
	public static void bubbleSortRecursive(String[] list, int end) {
		if (end > 1) {
			bubbleSortRecursiveInner(list, 0, end);
			bubbleSortRecursive(list, end - 1);
		}
	}
	
	public static void bubbleSortRecursiveInner(String[] list, int start, int end) {
		if (start < end) {
			if (list[start].compareTo(list[start + 1]) > 0) {
				swap(list, start, start + 1);
			}
			bubbleSortRecursiveInner(list, start + 1, end);
		}
	}
	
	public static void swap(String[] list, int one, int two) {
		String temp = list[one];
		list[one] = list[two];
		list[two] = temp;
	}
}


