冒泡排序的简单优化
pubic class BubbleSort{
public static void main(String[] args) {
int[] arr = {2,76,342,564,123,5634,23,4,67,87,54124,34};
for (int i = 0; i < arr.length; i++) {
boolean flag = true;//用于记录交换位置
for (int j = 0; j <arr.length-i-1 ; j++) {
if (arr[j] > arr[j+1]){
int temple = arr[j];
arr[j] =arr[j+1];
arr[j+1] = temple;
flag = false;//当交互位置时,改变标志状态
}
if(flag){//如果已经交互,之后就不会再交换,退出本次循环
break;
}
}
}
- 第一层的循环,我们用来遍历数组的所有元素,以此来给每个元素排序,故我们在第一次初始化一个标识。
- 第二层用于找出本轮需要找出的元素通过交换位置,如果一次位置都没有交换,代表本轮已经排序好了。