1、介绍
通过对待排序序列从前向后(从下标较小的元素开始)依次比较相邻的元素的值,若发现逆序则交换,使值较大的元素逐渐从前面移到后面
2、代码实现
public static void main(String[] args) {
int arr[] = {5, 4, 3, 10, 11};
bubbleSort(arr);
showArray(arr);
}
public static void bubbleSort(int[] arr) {
int length = arr.length;
// 冒泡排序的忧化
// 因为排序的过程中,各元素不断的接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此在排序过程中可以设置一个‘flag’,判断元素是否还在交换,从而减少不必要的比较
boolean flag = false;
// 控制排序的次数
for(int i = 1; i < length;i++) {
// 用于比较两个相邻元素的大小
for (int j = 0; j < length - i; j++) {
if (arr[j] > arr[j+1]) {
flag = true;
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
if (!flag) {
break;
}
flag = false;
}
}
public static void showArray(int[] arr) {
for (int i = 0;i < arr.length;i++) {
System.out.printf("%d\n", arr[i]);
}
}
仅供参考