import java.util.Arrays
/**
* 冒泡排序
* 个人理解:1.元素从0到n,相邻两个比较,大的后移,直到最后
* 2.每比较一趟,下一趟最后一个元素就不需要再比较,就少一趟循环
* 3.时间复杂度,最好情况O(n),最坏情况O(n²)
* 3.空间复杂度,因为没有用到额外空间,所以为0(1)
* 4.稳定性,因为没有发生跳跃式变换(跳跃式指非相邻元素交换位置),所以稳定
*/
public class SortTest {
public static void main(String[] args) {
int[] arr = {70, 12, 82, 43, 99, 23, 38, 53, 22}
bubbleSort(arr)
Arrays.stream(arr).forEach(a->System.out.print(a+" "))
}
public static void bubbleSort(int[] arr) {
for (int i=0
boolean flag = false
for (int j=0
if (arr[j] > arr[j+1]) {
int temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
flag = true
}
}
// 如果某一趟没有元素交换,说明已经排好序了
if (!flag) {
break
}
}
}
}