6
6
* @author myibu
7
7
* Created on 2021/11/2
8
8
*/
9
- public class BubbleSorts implements Sorts {
10
- @ Override
11
- public void sort (byte [] a ) {
12
- int n = a .length ;
13
- for (int i = 0 ; i < n -1 ; i ++) {
14
- for (int j = 0 ; j < n - i - 1 ; j ++) {
9
+ public class BubbleSorts extends AbstractSorts {
10
+ public static void bubbleSort (byte [] a , int fromIndex , int toIndex ) {
11
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
12
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
15
13
if (a [j ] > a [j + 1 ]) {
16
14
byte temp = a [j ];
17
15
a [j ] = a [j + 1 ];
@@ -21,13 +19,10 @@ public void sort(byte[] a) {
21
19
}
22
20
}
23
21
24
- @ Override
25
- public void sort (short [] a ) {
26
- int n = a .length ;
27
- for (int i = 0 ; i < n -1 ; i ++) {
28
- for (int j = 0 ; j < n - i - 1 ; j ++) {
22
+ public static void bubbleSort (short [] a , int fromIndex , int toIndex ) {
23
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
24
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
29
25
if (a [j ] > a [j + 1 ]) {
30
- // swap arr[j+1] and arr[j]
31
26
short temp = a [j ];
32
27
a [j ] = a [j + 1 ];
33
28
a [j + 1 ] = temp ;
@@ -36,13 +31,10 @@ public void sort(short[] a) {
36
31
}
37
32
}
38
33
39
- @ Override
40
- public void sort (int [] a ) {
41
- int n = a .length ;
42
- for (int i = 0 ; i < n -1 ; i ++) {
43
- for (int j = 0 ; j < n - i - 1 ; j ++) {
34
+ public static void bubbleSort (int [] a , int fromIndex , int toIndex ) {
35
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
36
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
44
37
if (a [j ] > a [j + 1 ]) {
45
- // swap arr[j+1] and arr[j]
46
38
int temp = a [j ];
47
39
a [j ] = a [j + 1 ];
48
40
a [j + 1 ] = temp ;
@@ -51,13 +43,10 @@ public void sort(int[] a) {
51
43
}
52
44
}
53
45
54
- @ Override
55
- public void sort (long [] a ) {
56
- int n = a .length ;
57
- for (int i = 0 ; i < n -1 ; i ++) {
58
- for (int j = 0 ; j < n - i - 1 ; j ++) {
46
+ public static void bubbleSort (long [] a , int fromIndex , int toIndex ) {
47
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
48
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
59
49
if (a [j ] > a [j + 1 ]) {
60
- // swap arr[j+1] and arr[j]
61
50
long temp = a [j ];
62
51
a [j ] = a [j + 1 ];
63
52
a [j + 1 ] = temp ;
@@ -66,13 +55,10 @@ public void sort(long[] a) {
66
55
}
67
56
}
68
57
69
- @ Override
70
- public void sort (float [] a ) {
71
- int n = a .length ;
72
- for (int i = 0 ; i < n -1 ; i ++) {
73
- for (int j = 0 ; j < n - i - 1 ; j ++) {
58
+ public static void bubbleSort (float [] a , int fromIndex , int toIndex ) {
59
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
60
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
74
61
if (a [j ] > a [j + 1 ]) {
75
- // swap arr[j+1] and arr[j]
76
62
float temp = a [j ];
77
63
a [j ] = a [j + 1 ];
78
64
a [j + 1 ] = temp ;
@@ -81,13 +67,10 @@ public void sort(float[] a) {
81
67
}
82
68
}
83
69
84
- @ Override
85
- public void sort (double [] a ) {
86
- int n = a .length ;
87
- for (int i = 0 ; i < n -1 ; i ++) {
88
- for (int j = 0 ; j < n - i - 1 ; j ++) {
70
+ public static void bubbleSort (double [] a , int fromIndex , int toIndex ) {
71
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
72
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
89
73
if (a [j ] > a [j + 1 ]) {
90
- // swap arr[j+1] and arr[j]
91
74
double temp = a [j ];
92
75
a [j ] = a [j + 1 ];
93
76
a [j + 1 ] = temp ;
@@ -96,13 +79,10 @@ public void sort(double[] a) {
96
79
}
97
80
}
98
81
99
- @ Override
100
- public void sort (char [] a ) {
101
- int n = a .length ;
102
- for (int i = 0 ; i < n -1 ; i ++) {
103
- for (int j = 0 ; j < n - i - 1 ; j ++) {
82
+ public static void bubbleSort (char [] a , int fromIndex , int toIndex ) {
83
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
84
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
104
85
if (a [j ] > a [j + 1 ]) {
105
- // swap arr[j+1] and arr[j]
106
86
char temp = a [j ];
107
87
a [j ] = a [j + 1 ];
108
88
a [j + 1 ] = temp ;
@@ -111,14 +91,11 @@ public void sort(char[] a) {
111
91
}
112
92
}
113
93
114
- @ Override
115
- public void sort (Object [] a ) {
116
- int n = a .length ;
117
- for (int i = 0 ; i < n -1 ; i ++) {
118
- for (int j = 0 ; j < n - i - 1 ; j ++) {
94
+ public static void bubbleSort (Object [] a , int fromIndex , int toIndex ) {
95
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
96
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
119
97
Comparable pre = (Comparable )a [j ];
120
98
if (pre .compareTo (a [j +1 ]) > 0 ) {
121
- // swap arr[j+1] and arr[j]
122
99
Object temp = a [j ];
123
100
a [j ] = a [j + 1 ];
124
101
a [j + 1 ] = temp ;
@@ -127,18 +104,61 @@ public void sort(Object[] a) {
127
104
}
128
105
}
129
106
130
- @ Override
131
- public <T > void sort (T [] a , Comparator <? super T > c ) {
132
- int n = a .length ;
133
- for (int i = 0 ; i < n -1 ; i ++) {
134
- for (int j = 0 ; j < n - i - 1 ; j ++) {
107
+ public <T > void bubbleSort (T [] a , int fromIndex , int toIndex , Comparator <? super T > c ) {
108
+ for (int i = 0 ; i < toIndex -fromIndex ; i ++) {
109
+ for (int j = fromIndex ; j < toIndex - i - 1 ; j ++) {
135
110
if (c .compare (a [j ], a [j +1 ]) > 0 ) {
136
- // swap arr[j+1] and arr[j]
137
111
T temp = a [j ];
138
112
a [j ] = a [j + 1 ];
139
113
a [j + 1 ] = temp ;
140
114
}
141
115
}
142
116
}
143
117
}
118
+
119
+
120
+ @ Override
121
+ public void sort (byte [] a , int fromIndex , int toIndex ) {
122
+ bubbleSort (a , fromIndex , toIndex );
123
+ }
124
+
125
+ @ Override
126
+ public void sort (short [] a , int fromIndex , int toIndex ) {
127
+ bubbleSort (a , fromIndex , toIndex );
128
+ }
129
+
130
+ @ Override
131
+ public void sort (int [] a , int fromIndex , int toIndex ) {
132
+ bubbleSort (a , fromIndex , toIndex );
133
+ }
134
+
135
+ @ Override
136
+ public void sort (long [] a , int fromIndex , int toIndex ) {
137
+ bubbleSort (a , fromIndex , toIndex );
138
+ }
139
+
140
+ @ Override
141
+ public void sort (float [] a , int fromIndex , int toIndex ) {
142
+ bubbleSort (a , fromIndex , toIndex );
143
+ }
144
+
145
+ @ Override
146
+ public void sort (double [] a , int fromIndex , int toIndex ) {
147
+ bubbleSort (a , fromIndex , toIndex );
148
+ }
149
+
150
+ @ Override
151
+ public void sort (char [] a , int fromIndex , int toIndex ) {
152
+ bubbleSort (a , fromIndex , toIndex );
153
+ }
154
+
155
+ @ Override
156
+ public void sort (Object [] a , int fromIndex , int toIndex ) {
157
+ bubbleSort (a , fromIndex , toIndex );
158
+ }
159
+
160
+ @ Override
161
+ public <T > void sort (T [] a , int fromIndex , int toIndex , Comparator <? super T > c ) {
162
+ bubbleSort (a , fromIndex , toIndex , c );
163
+ }
144
164
}
0 commit comments