冒泡排序(英语:Bubble Sort)又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 - 维基百科
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public class BubbleSort { public static void main(String[] args) { Integer[] numbers = {99, 0, 8, 6, 334, 21}; printArray(numbers); bubbleSort(numbers); printArray(numbers); }
private static void bubbleSort(Integer[] numbers) { if (numbers == null || numbers.length <= 1) { return; }
for (int i = 0; i < numbers.length - 1; i++) { for (int j = 0; j < numbers.length - i - 1; j++) { if (numbers[j] > numbers[j + 1]) { int temp = numbers[j]; numbers[j] = numbers[j + 1]; numbers[j + 1] = temp; } } } }
private static <T> void printArray(T[] array) { if (array == null || array.length < 1) { return; } StringBuilder sb = new StringBuilder(array.length * 2 + 2); sb.append("["); for (int i = 0; i < array.length; i++) { sb.append(array[i]); if (i != array.length - 1) { sb.append(", "); } } sb.append("]"); System.out.println(sb); } }
|