冒泡排序
1 基本介绍
冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开
始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。
2 图解分析
3 代码实现
package zuoye;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
//定义原始数组
int arr[] = {3, 9, -1, 10, 20};
System.out.println("排序前的数组:");
System.out.println(Arrays.toString(arr));
//测试冒泡排序
bubbleSort(arr);
System.out.println("排序后的数组:");
System.out.println(Arrays.toString(arr));
}
//将冒泡排序封装成一个方法
public static void bubbleSort(int[] arr) {
//程序优化:
boolean flag = false;//标识符,表示是否进行过交换
for (int i = 0; i < arr.length - 1; i++) {
int temp = 0; //临时变量,用于交换时使用
for (int j = 0; j < arr.length - 1 - i; j++) {
//如果前面的数比后面的数大,则交换
if (arr[j] > arr[j + 1]) {
flag = true;
temp = arr[j]; //先将arr[j]的数据保存到temp中
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
if (flag == false) {//说明在一趟排序中,一次交换都没有
break;
} else {
flag = false;//进行重置flag,进行下次判断
}
}
}
}
4 实验结果