冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
为了更好地理解冒泡排序,请看以下一组冒泡排序的解析图,最后我会用一个Java代码的例子让大家更深入的理解冒泡排序。
冒泡排序图画讲解
以下是一个用Java实现的简单冒泡排序例子:
public class BubbleSort {
public static void main(String[] args) {
int[] array = {64, 34, 25, 12, 22, 11, 90};
bubbleSort(array);
System.out.println("Sorted array: ");
printArray(array);
}
static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1]) {
// swap arr[j+1] and arr[j]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
static void printArray(int[] arr) {
int n = arr.length;
for (int i=0; i<n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}
}
在这个例子中,我们首先定义了一个需要排序的数组array。bubbleSort函数是实现冒泡排序的主要逻辑,其中包含两个嵌套的循环。外层循环遍历整个数组,内层循环对当前未排序的部分进行遍历。如果相邻的两个元素顺序不正确(即arr[j] > arr[j+1]),我们就交换这两个元素的位置。这样,每次内层循环结束后,最大的元素就会被“冒泡”到数组的末尾。通过多次外层循环,整个数组就会被排序。printArray函数则是用于打印排序后的数组。