package com.atguigu.Sort;
import java.util.Arrays;
/**
* 冒泡排序
* @author shkstart
* @create 2021 -09-29 20:52
*/
public class BubbleSortTest {
public static void main(String[] args) {
// int[] arr ={10,3,20,-1,9};
int[] arr ={-1, 3, 9, 10, 20};
// System.out.println("排序前");
// System.out.println(Arrays.toString(arr));
//测试冒泡排序的时间复杂度O(n^2),给80000个数据,测试
// 创建要给80000个数据的数组
int[] arr = new int[80000];
for(int i = 0;i < 80000;i++){
arr[i] = (int)(Math.random()*(800000 - 0 + 1));
}
System.out.println(arr.length);
// long l1 = System.currentTimeMillis();
//测试冒泡排序
// bubbleSort(arr);
// System.out.println("排序后");
// System.out.println(Arrays.toString(arr));
// long l2 = System.currentTimeMillis();
// System.out.println("排序用的时间是" + (l2-l1));
// for(int i = 0;i < arr.length;i++){
// System.out.println(arr[i]);
// }
// System.out.println(Arrays.toString(arr));
}
//将前面的冒泡排序的算法封装成一个方法
public static void bubbleSort(int[] arr){
boolean flag = false;//表示变量,表示是否进行过交换
for(int i = 0;i < arr.length -1;i++){
for(int j = 0;j < arr.length - 1 - i;j++){
if(arr[j] > arr[j + 1]){
flag = true;
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// System.out.println("第" + (i+1) + "次排序后的数组");
// System.out.println(Arrays.toString(arr));
if(flag == false){
break;
}else{
flag = false;//重置flag,进行下次判断
}
}
}
}
09-06
3151
06-05
1184
08-05
1144
11-25
1225