冒泡排序java
# 冒泡排序
时间复杂度:O(n^2^)
package com.array;
import java.util.Arrays;
public class Bubble {
public static void main(String[] args) {
int[] arr = {1, 2, 233, 43334, 54454, 56656, 7676, 121};
int[] sort = sort(arr);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j + 1] < array[j]) {
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
return array;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 优化
如果是顺序的,就减少一次循环
package com.array;
import java.util.Arrays;
public class Bubble {
public static void main(String[] args) {
int[] arr = {1, 2, 233, 43334, 54454, 56656, 7676, 121};
int[] sort = sort(arr);
System.out.println(Arrays.toString(sort));
}
public static int[] sort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
boolean flag = false; // 减少没有意义的比较
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j + 1] < array[j]) {
int temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
flag = true;
}
}
if (!flag) {
break;
}
}
return array;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
编辑 (opens new window)
上次更新: 2021/11/03, 22:29:12