Skip to content

Commit 968b0d9

Browse files
committed
add sort method
1 parent 4071df2 commit 968b0d9

File tree

9 files changed

+1676
-0
lines changed

9 files changed

+1676
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
package com.github.myibu.algorithm.sort;
2+
import java.util.Comparator;
3+
4+
/**
5+
* Bubble Sort
6+
* @author myibu
7+
* Created on 2021/11/2
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++) {
15+
if (a[j] > a[j + 1]) {
16+
byte temp = a[j];
17+
a[j] = a[j + 1];
18+
a[j + 1] = temp;
19+
}
20+
}
21+
}
22+
}
23+
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++) {
29+
if (a[j] > a[j + 1]) {
30+
// swap arr[j+1] and arr[j]
31+
short temp = a[j];
32+
a[j] = a[j + 1];
33+
a[j + 1] = temp;
34+
}
35+
}
36+
}
37+
}
38+
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++) {
44+
if (a[j] > a[j + 1]) {
45+
// swap arr[j+1] and arr[j]
46+
int temp = a[j];
47+
a[j] = a[j + 1];
48+
a[j + 1] = temp;
49+
}
50+
}
51+
}
52+
}
53+
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++) {
59+
if (a[j] > a[j + 1]) {
60+
// swap arr[j+1] and arr[j]
61+
long temp = a[j];
62+
a[j] = a[j + 1];
63+
a[j + 1] = temp;
64+
}
65+
}
66+
}
67+
}
68+
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++) {
74+
if (a[j] > a[j + 1]) {
75+
// swap arr[j+1] and arr[j]
76+
float temp = a[j];
77+
a[j] = a[j + 1];
78+
a[j + 1] = temp;
79+
}
80+
}
81+
}
82+
}
83+
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++) {
89+
if (a[j] > a[j + 1]) {
90+
// swap arr[j+1] and arr[j]
91+
double temp = a[j];
92+
a[j] = a[j + 1];
93+
a[j + 1] = temp;
94+
}
95+
}
96+
}
97+
}
98+
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++) {
104+
if (a[j] > a[j + 1]) {
105+
// swap arr[j+1] and arr[j]
106+
char temp = a[j];
107+
a[j] = a[j + 1];
108+
a[j + 1] = temp;
109+
}
110+
}
111+
}
112+
}
113+
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++) {
119+
Comparable pre = (Comparable)a[j];
120+
if (pre.compareTo(a[j+1]) > 0) {
121+
// swap arr[j+1] and arr[j]
122+
Object temp = a[j];
123+
a[j] = a[j + 1];
124+
a[j + 1] = temp;
125+
}
126+
}
127+
}
128+
}
129+
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++) {
135+
if (c.compare(a[j], a[j+1]) > 0) {
136+
// swap arr[j+1] and arr[j]
137+
T temp = a[j];
138+
a[j] = a[j + 1];
139+
a[j + 1] = temp;
140+
}
141+
}
142+
}
143+
}
144+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.github.myibu.algorithm.sort;
2+
import java.util.*;
3+
4+
/**
5+
* Bucket Sort
6+
* @author myibu
7+
* Created on 2021/11/2
8+
*/
9+
public class BucketSorts implements Sorts {
10+
@Override
11+
public void sort(byte[] a) {
12+
13+
}
14+
15+
@Override
16+
public void sort(short[] a) {
17+
18+
}
19+
20+
@Override
21+
public void sort(int[] a) {
22+
int max = Integer.MIN_VALUE;
23+
int min = Integer.MAX_VALUE;
24+
for (int i = 0; i < a.length; i++) {
25+
max = Math.max(max, a[i]);
26+
min = Math.min(min, a[i]);
27+
}
28+
29+
int bucketNum = (max - min) / a.length + 1;
30+
List<List<Integer>> bucketArr = new ArrayList<>(bucketNum);
31+
for (int i = 0; i < bucketNum; i++) {
32+
bucketArr.add(new ArrayList<>());
33+
}
34+
35+
for (int i = 0; i < a.length; i++) {
36+
int num = (a[i] - min) / (a.length);
37+
bucketArr.get(num).add(a[i]);
38+
}
39+
40+
for (int i = 0; i < bucketArr.size(); i++) {
41+
Integer[] a1 = bucketArr.get(i).toArray(new Integer[0]);
42+
new QuickSorts().sort(a1);
43+
bucketArr.set(i, Arrays.asList(a1));
44+
}
45+
46+
int index = 0;
47+
for (int i = 0; i < bucketArr.size(); i++) {
48+
for (int j = 0; j < bucketArr.get(i).size(); j++) {
49+
a[index++] = bucketArr.get(i).get(j);
50+
}
51+
}
52+
}
53+
54+
@Override
55+
public void sort(long[] a) {
56+
57+
}
58+
59+
@Override
60+
public void sort(float[] a) {
61+
62+
}
63+
64+
@Override
65+
public void sort(double[] a) {
66+
67+
}
68+
69+
@Override
70+
public void sort(char[] a) {
71+
72+
}
73+
74+
@Override
75+
public void sort(Object[] a) {
76+
77+
}
78+
79+
@Override
80+
public <T> void sort(T[] a, Comparator<? super T> c) {
81+
82+
}
83+
}

0 commit comments

Comments
 (0)