Skip to content

Commit 360f0af

Browse files
authored
Create PigeonholeSort.java
1 parent 5d0f971 commit 360f0af

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

PigeonholeSort.java

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/* Java program to implement Pigeonhole Sort */
2+
3+
import java.lang.*;
4+
import java.util.*;
5+
6+
public class PigeonholeSort
7+
{
8+
public static void pigeonhole_sort(int arr[],
9+
int n)
10+
{
11+
int min = arr[0];
12+
int max = arr[0];
13+
int range, i, j, index;
14+
15+
for(int a=0; a<n; a++)
16+
{
17+
if(arr[a] > max)
18+
max = arr[a];
19+
if(arr[a] < min)
20+
min = arr[a];
21+
}
22+
23+
range = max - min + 1;
24+
int[] phole = new int[range];
25+
Arrays.fill(phole, 0);
26+
27+
for(i = 0; i<n; i++)
28+
phole[arr[i] - min]++;
29+
30+
31+
index = 0;
32+
33+
for(j = 0; j<range; j++)
34+
while(phole[j]-->0)
35+
arr[index++]=j+min;
36+
37+
}
38+
39+
public static void main(String[] args)
40+
{
41+
PigeonholeSort sort = new PigeonholeSort();
42+
int[] arr = {8, 3, 2, 7, 4, 6, 8};
43+
44+
System.out.print("Sorted order is : ");
45+
46+
sort.pigeonhole_sort(arr,arr.length);
47+
48+
for(int i=0 ; i<arr.length ; i++)
49+
System.out.print(arr[i] + " ");
50+
}
51+
52+
}
53+
54+

0 commit comments

Comments
 (0)