- 比较相邻的元素,如果前一个比后一个大,交换之。
- 第一趟排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。
-
第二趟将第二大的数移动至倒数第二位
......
因此需要n-1趟;
动图
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.stream.Collectors;
public class PopSort {
public static void main(String[] args) {
int[] arrs = {1,2,4,8,5,3};
//冒泡排序
for(int i = 0; i<arrs.length-1; i++) {
for(int j = 0; j < arrs.length-1-i; j++) {
if(arrs[j]>arrs[j+1]) {
int temp = arrs[j];
arrs[j] = arrs[j+1];
arrs[j+1] = temp;
}
}
}
for (int i = 0; i < arrs.length; i++) {
System.out.println(arrs[i]);
}
}
}
复杂度
时间复杂度: O(N^2)
空间复杂度: O(1)
稳定性:稳定