冒泡排序的算法
(1)整个数列分成两部分:前面是无序数列,后面是有序数列
(2)初始状态下,整个数列都是无序的,有序数列是空
(3) 如果一个数列有n个元素,则至多需要n-1趟循环才能保证数列有序
(4) 每一趟循环可以让无序数列中最大数排到最后,(也就是说有序数列的元素个数增加1)
(5) 每一趟循环都从数列的第一个元素开始进行比较,依次比较相邻的两个元素,比较到无序数列的末尾即可(而不是数列的末尾)
(6) 如果前一个大于后一个,交换
public class BubbleTest {
public static void main(String[] args) {
//冒泡排序
int[] arr = {1, 5, 9, 7, 6, 3, 11, 10};
for (int i = 0; i < arr.length - 1; i++) {
boolean flag = true;
//arr.length - 1 - i 每排序一次最后一位就不用了再排了
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false;
}
}
if (flag) {
break;
}
}
System.out.println(Arrays.toString(arr));
}
}