private int[] bubbleSort(int[] numbers)
    {
        int temp;
        for (int i = numbers.length; i >= 0; i--) {
            for (int j = 0; j < i - 1; j++) {
                if (numbers[j] > numbers[j+1]) {
                    //swap elements
                    temp = numbers[j];
                    numbers[j] = numbers[j+1];
                    numbers[j+1] = temp;
                }
            }
        }
        return numbers;
    }

    private int[] enhancedBubbleSort(int[] numbers)
    {
        int swapped = 1;
        int temp;
        for (int i = numbers.length; i >= 0 && i >= swapped; i--) {
            swapped = 0;
            for (int j = 0; j < i - 1; j++) {
                if (numbers[j] > numbers[j+1]) {
                    //swap elements
                    temp = numbers[j];
                    numbers[j] = numbers[j+1];
                    numbers[j+1] = temp;
                    swapped = 1;
                }
            }
        }
        return numbers;
    }
Bubble Sort
Published:

Bubble Sort

I created a simple graphic to step through how the Bubble Sort works, as well as included two implementations of Bubble Sort.

Published:

Creative Fields