1.对于冒泡排序的理解
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。通俗来说就是依次 比较 相邻的两个数,正序则不动,倒序则交换位置,如此循环,直到整个数组为有序为止。
流程
例如:现在有:
第一轮比较
1.比较索引为0和1的值:3 > 2,为倒序,进行交换;接下来为:
2.再比较索引为1和2的值:3 < 7,为正序,不用进行交换。
总结:此时最大值已在最后,且为有序。如果此时还未有序,还需进行下一次比较。
2.代码实现
import java.util.Arrays;
public class bubbleSort {
public static void main(String[] args) {
// 定义数组
int[] a = new int[]{3,1,4,2,11};
for (int i= 0; i<a.length-1;i++){
//定义一个标志位,用于判定元素之间是否进行了交换
boolean flag = true;
for (int j= 0; j<a.length-1; j++){
if (a[j] > a[j+1]){
//temp为临时变量
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = false;
}
}
//进行一轮排序后判断本轮是否进行过元素的交换,如果没有发生交换,说明数组已经是有序的了,则直接结束排序
if (flag){
break;
}
}
// 输出结果
System.out.println("冒泡排序后为"+ Arrays.toString(a));
}
}
3.运行结果