Java编程题-冒泡排序

冒泡排序:int 类型的数组 3 1 6 2 5

算法:大的冒出来,小的沉下去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class BubbleSort {
public static void main(String[] args) {
int[] a = { 3, 1, 6, 2, 5 };

for (int i = a.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (a[j] > a[j + 1]) {
// 交换位置
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}

分析思路:

第一次循环:3 1 6 2 5

1 3 6 2 5

1 3 6 2 5

1 3 2 6 5

1 3 2 5 6

第二次循环:1 3 2 5

1 3 2 5

1 2 3 5

1 2 3 5

第三次循环:1 2 3

1 2 3

1 2 3

第四次循环:1 2

1 2

循环4次,逐步变为1,所以外循环i = 4;i--

里循环,循环为4 3 2 1,如果j<i;j++