Skip to content

Commit 5d837f0

Browse files
authored
Added 3 sorts in java div-bargali#154
Added 3 sorts in java div-bargali#154
2 parents b3024df + e220cef commit 5d837f0

File tree

3 files changed

+82
-0
lines changed

3 files changed

+82
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
static void countSort(int[] arr)
2+
{
3+
int max = Arrays.stream(arr).max().getAsInt();
4+
int min = Arrays.stream(arr).min().getAsInt();
5+
int range = max - min + 1;
6+
int count[] = new int[range];
7+
int output[] = new int[arr.length];
8+
for (int i = 0; i < arr.length; i++)
9+
{
10+
count[arr[i] - min]++;
11+
}
12+
13+
for (int i = 1; i < count.length; i++)
14+
{
15+
count[i] += count[i - 1];
16+
}
17+
18+
for (int i = arr.length - 1; i >= 0; i--)
19+
{
20+
output[count[arr[i] - min] - 1] = arr[i];
21+
count[arr[i] - min]--;
22+
}
23+
24+
for (int i = 0; i < arr.length; i++)
25+
{
26+
arr[i] = output[i];
27+
}
28+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
public static void pigeonhole_sort(int arr[],
2+
int n)
3+
{
4+
int min = arr[0];
5+
int max = arr[0];
6+
int range, i, j, index;
7+
8+
for(int a=0; a<n; a++)
9+
{
10+
if(arr[a] > max)
11+
max = arr[a];
12+
if(arr[a] < min)
13+
min = arr[a];
14+
}
15+
16+
range = max - min + 1;
17+
int[] phole = new int[range];
18+
Arrays.fill(phole, 0);
19+
20+
for(i = 0; i<n; i++)
21+
phole[arr[i] - min]++;
22+
23+
24+
index = 0;
25+
26+
for(j = 0; j<range; j++)
27+
while(phole[j]-->0)
28+
arr[index++]=j+min;
29+
30+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public class Program {
2+
public static void main(String[] args) {
3+
int[] arr = bubbleSort(new int[] { 64, 34, 25, 12, 22, 11, 90 });
4+
for (int i = 0; i < arr.length; System.out.println(arr[i++]))
5+
;
6+
7+
}
8+
9+
public static int[] bubbleSort(int[] arr) {
10+
for (int i = 0; i < arr.length; i++) {
11+
try {
12+
int num = arr[i];
13+
if (arr[i + 1] < num) {
14+
arr[i] = arr[i + 1];
15+
arr[i + 1] = num;
16+
bubbleSort(arr);
17+
}
18+
} catch (IndexOutOfBoundsException e) {
19+
continue;
20+
}
21+
}
22+
return arr;
23+
}
24+
}

0 commit comments

Comments
 (0)