基本思想:通过对排序序列从前到后(从下标较小的元素开始),依次比较相邻的元素,如果发现逆序的交换,值较大的元素逐渐从前移到后部,就像水底的气泡一样逐渐向上冒。
冒泡排序(如果从小到大)
- 趟数:一共进行数组大小-1次循环
- 每一趟排序的次数都在逐渐减少
- 每一趟都找出最大的数
- 优化:如果某趟排序中,没有发生交换,可以提前结束冒泡排序。
以下代码为:通过冒泡排序思想进行升降序排列的方法(封装) 以及通过flag进进行优化;
package bTest;
import java.text.SimpleDateFormat;
import java.util.Date;
public class BubbleSort {
public static void main(String[] args) {
int arr[] = { -2, -1, 5, 2, 8, 20 };
Date date1 = new Date();
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1Str = simpleDateFormat.format(date1);
System.out.println("排序前的时间:" + date1Str);
int arr1[] = new int[80000]; // 8万数据需要20秒左右 18万40秒左右;
for (int