1,冒泡排序基本介绍
- 冒泡排序是对数组的第一个元素开始,从前往后(从最小下标开始)依次比较相邻两个元素的值,若发现逆序则进行交换,使得较大的元素逐渐往后移动
- 优化:在排序过程中,可以设置标志位,如果存在某一趟比较没有发生元素的位置互换,则说明数组已经有序,直接退出,无需再进行后续比较
- 冒泡排序的时间复杂度为
O(n^2)
2,冒泡排序示例
3,冒泡排序代码演示
package com.self.datastructure.sort;
import java.util.Arrays;
public class BubbleSortDemo {
public static void main(String[] args) {
int[] array = new int[100000];
for (int i = 0; i < 100000; i++) {
array[i] = (int) (Math.random() * 8000000);
}
long startTime = System.currentTimeMillis();
bubbleSort(array);
System.out.println("cast time : " + (System.currentTimeMillis() - startTime));
}
private static void bubbleSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
boolean flag = true;
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
flag = false;
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
if (flag) {
break;
}
}
}
}