冒泡排序简单地说,就是将数组中所有的数依次比较,每一轮都把选出的最大的数放到最后,经过一定轮次得到最终的结果。
例子:5 9 6 7 1 3
第一轮:5 9 6 7 1 3
5与9比,小于9,不用交换。5 9 6 7 1 3
9与6比,大于6,交换。 5 6 9 7 1 3
9与7比,大于7,交换。 5 6 7 9 1 3
9与1比,大于1,交换。 5 6 7 1 9 3
9与3比,大于3,交换。 5 6 7 1 3 9
第二轮: 5 6 7 1 3 9
5与6比,小于6,不交换。5 6 7 1 3 9
6与7比,小于7,不交换。5 6 7 1 3 9
7与1比,大于1,交换。 5 6 1 7 3 9
7与3比,大于3,交换。 5 6 1 3 7 9
依次类推,最后得到最终结果:1 3 5 6 7 9
代码:
import java.util.Arrays;
/**
* @author LS
* @date 2021/11/5 19:58
* @description
*/
public class Maopao {
public static void main(String[] args) {
int[] arr = {5,9,6,7,1,3};
for (int i = 1; i < arr.length; i++) {
for (int j = 0; j < arr.length - i; j++) {
if (arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
冒泡排序 时间复杂度 O(n^2) 空间复杂度O(1)