Skip to content

Commit 7fd90b6

Browse files
Merge pull request #20 from dvir019/main
Add sorting algorithms in Java
2 parents 7eb7473 + c1bd4ab commit 7fd90b6

2 files changed

Lines changed: 96 additions & 0 deletions

File tree

Sorting/Java/CountingSort.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import java.util.Arrays;
2+
3+
public class CountingSort {
4+
public static void bucketSort(int[] arr, int low, int high) {
5+
int[] hist = new int[high - low + 1];
6+
7+
for (int num : arr) {
8+
hist[num - low]++;
9+
}
10+
11+
int index = 0;
12+
13+
for (int i = 0; i < hist.length; i++) {
14+
for (int j = 0; j < hist[i]; j++) {
15+
arr[index++] = i + low;
16+
}
17+
}
18+
}
19+
20+
public static void main(String[] args) {
21+
int[] arr = {1, 1, 5, 2, 2, 3, 0, 0, -1, 2};
22+
23+
System.out.println("Unsorted array: " + Arrays.toString(arr));
24+
25+
bucketSort(arr, -1, 5);
26+
27+
System.out.println("Sorted array: " + Arrays.toString(arr));
28+
}
29+
}

Sorting/Java/MergeSort.java

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import java.util.Arrays;
2+
3+
class MergeSort {
4+
private static void merge(int[] arr, int left, int middle, int right) {
5+
int n1 = middle - left + 1;
6+
int n2 = right - middle;
7+
8+
int[] leftArray = new int[n1];
9+
int[] rightArray = new int[n2];
10+
11+
System.arraycopy(arr, left, leftArray, 0, n1);
12+
for (int j = 0; j < n2; j++) {
13+
rightArray[j] = arr[middle + 1 + j];
14+
}
15+
16+
int i = 0, j = 0;
17+
18+
int k = left;
19+
while (i < n1 && j < n2) {
20+
if (leftArray[i] <= rightArray[j]) {
21+
arr[k] = leftArray[i];
22+
i++;
23+
} else {
24+
arr[k] = rightArray[j];
25+
j++;
26+
}
27+
k++;
28+
}
29+
30+
while (i < n1) {
31+
arr[k] = leftArray[i];
32+
i++;
33+
k++;
34+
}
35+
36+
while (j < n2) {
37+
arr[k] = rightArray[j];
38+
j++;
39+
k++;
40+
}
41+
}
42+
43+
private static void mergeSort(int[] arr, int left, int right) {
44+
if (left < right) {
45+
int middle = (left + right) / 2;
46+
47+
mergeSort(arr, left, middle);
48+
mergeSort(arr, middle + 1, right);
49+
50+
merge(arr, left, middle, right);
51+
}
52+
}
53+
54+
private static void mergeSort(int[] arr) {
55+
mergeSort(arr, 0, arr.length - 1);
56+
}
57+
58+
public static void main(String[] args) {
59+
int[] arr = { 1, 5, 0, -8, 2, 1, 0, -2};
60+
61+
System.out.println("Unsorted array: " + Arrays.toString(arr));
62+
63+
mergeSort(arr);
64+
65+
System.out.println("Sorted array: " + Arrays.toString(arr));
66+
}
67+
}

0 commit comments

Comments
 (0)