算法学习第六日之冒泡排序
冒泡排序
定义
冒泡排序的优化
图解:
实现代码:
package com.atguigu.sort;
import javax.xml.crypto.Data;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class BubbleSort {
public static void main(String[] args) {
int arr[] = new int[80];
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateBegin = simpleDateFormat.format(new Date());
System.out.println(dateBegin);
for (int i = 0; i < 80; i++) {
arr[i] = (int)(Math.random() * 8000);
}
bubbleSort(arr);
String dateEnd = simpleDateFormat.format(new Date());
System.out.println(dateEnd);
}
public static void bubbleSort(int arr[]) {
int temp = 0;
boolean flag = false;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
flag = true;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.printf("第%d趟排序后的数组:",(i+1));
System.out.println(Arrays.toString(arr));
if (!flag) {
break;
} else {
flag = false;
}
}
}
}
特别注意:
flag = false
这里需要重置flag
为false
以进行下次判断