66 * @author myibu
77 * Created on 2021/11/2
88 */
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 ++) {
1513 if (a [j ] > a [j + 1 ]) {
1614 byte temp = a [j ];
1715 a [j ] = a [j + 1 ];
@@ -21,13 +19,10 @@ public void sort(byte[] a) {
2119 }
2220 }
2321
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 ++) {
2925 if (a [j ] > a [j + 1 ]) {
30- // swap arr[j+1] and arr[j]
3126 short temp = a [j ];
3227 a [j ] = a [j + 1 ];
3328 a [j + 1 ] = temp ;
@@ -36,13 +31,10 @@ public void sort(short[] a) {
3631 }
3732 }
3833
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 ++) {
4437 if (a [j ] > a [j + 1 ]) {
45- // swap arr[j+1] and arr[j]
4638 int temp = a [j ];
4739 a [j ] = a [j + 1 ];
4840 a [j + 1 ] = temp ;
@@ -51,13 +43,10 @@ public void sort(int[] a) {
5143 }
5244 }
5345
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 ++) {
5949 if (a [j ] > a [j + 1 ]) {
60- // swap arr[j+1] and arr[j]
6150 long temp = a [j ];
6251 a [j ] = a [j + 1 ];
6352 a [j + 1 ] = temp ;
@@ -66,13 +55,10 @@ public void sort(long[] a) {
6655 }
6756 }
6857
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 ++) {
7461 if (a [j ] > a [j + 1 ]) {
75- // swap arr[j+1] and arr[j]
7662 float temp = a [j ];
7763 a [j ] = a [j + 1 ];
7864 a [j + 1 ] = temp ;
@@ -81,13 +67,10 @@ public void sort(float[] a) {
8167 }
8268 }
8369
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 ++) {
8973 if (a [j ] > a [j + 1 ]) {
90- // swap arr[j+1] and arr[j]
9174 double temp = a [j ];
9275 a [j ] = a [j + 1 ];
9376 a [j + 1 ] = temp ;
@@ -96,13 +79,10 @@ public void sort(double[] a) {
9679 }
9780 }
9881
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 ++) {
10485 if (a [j ] > a [j + 1 ]) {
105- // swap arr[j+1] and arr[j]
10686 char temp = a [j ];
10787 a [j ] = a [j + 1 ];
10888 a [j + 1 ] = temp ;
@@ -111,14 +91,11 @@ public void sort(char[] a) {
11191 }
11292 }
11393
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 ++) {
11997 Comparable pre = (Comparable )a [j ];
12098 if (pre .compareTo (a [j +1 ]) > 0 ) {
121- // swap arr[j+1] and arr[j]
12299 Object temp = a [j ];
123100 a [j ] = a [j + 1 ];
124101 a [j + 1 ] = temp ;
@@ -127,18 +104,61 @@ public void sort(Object[] a) {
127104 }
128105 }
129106
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 ++) {
135110 if (c .compare (a [j ], a [j +1 ]) > 0 ) {
136- // swap arr[j+1] and arr[j]
137111 T temp = a [j ];
138112 a [j ] = a [j + 1 ];
139113 a [j + 1 ] = temp ;
140114 }
141115 }
142116 }
143117 }
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+ }
144164}
0 commit comments