This is a java program to sort the numbers using the Bucket Sort Technique. The algorithm allocates the number of memory locations equal to maximum number and initializes all to zero, then each location is incremented as the numbers appears. The time complexity of the algorithm is O(n).
Here is the source code of the Java Program to Implement Bucket Sort. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to sort numbers using bucket sort
import java.util.Random;
public class Bucket_Sort
{
static int[] sort(int[] sequence, int maxValue)
{
// Bucket Sort
int[] Bucket = new int[maxValue + 1];
int[] sorted_sequence = new int[sequence.length];
for (int i = 0; i < sequence.length; i++)
Bucket[sequence[i]]++;
int outPos = 0;
for (int i = 0; i < Bucket.length; i++)
for (int j = 0; j < Bucket[i]; j++)
sorted_sequence[outPos++] = i;
return sorted_sequence;
}
static void printSequence(int[] sorted_sequence)
{
for (int i = 0; i < sorted_sequence.length; i++)
System.out.print(sorted_sequence[i] + " ");
}
static int maxValue(int[] sequence)
{
int maxValue = 0;
for (int i = 0; i < sequence.length; i++)
if (sequence[i] > maxValue)
maxValue = sequence[i];
return maxValue;
}
public static void main(String args[])
{
System.out
.println("Sorting of randomly generated numbers using BUCKET SORT");
Random random = new Random();
int N = 20;
int[] sequence = new int[N];
for (int i = 0; i < N; i++)
sequence[i] = Math.abs(random.nextInt(100));
int maxValue = maxValue(sequence);
System.out.println("\nOriginal Sequence: ");
printSequence(sequence);
System.out.println("\nSorted Sequence: ");
printSequence(sort(sequence, maxValue));
}
}
Output:
$ javac Bucket_Sort.java $ java Bucket_Sort Sorting of randomly generated numbers using BUCKET SORT Original Sequence: 95 9 95 87 8 81 18 54 57 53 92 15 38 24 8 56 29 69 64 66 Sorted Sequence: 8 8 9 15 18 24 29 38 53 54 56 57 64 66 69 81 87 92 95 95
Related posts:
A Guide to Java HashMap
Converting Java Date to OffsetDateTime
Jackson – Bidirectional Relationships
Converting Between an Array and a Set in Java
Circular Dependencies in Spring
Creating Docker Images with Spring Boot
Anonymous Classes in Java
Java – Generate Random String
How To Serialize and Deserialize Enums with Jackson
Java Program for Douglas-Peucker Algorithm Implementation
Java Program to Represent Graph Using Adjacency List
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Adding Shutdown Hooks for JVM Applications
Spring’s RequestBody and ResponseBody Annotations
Java Program to Implement Ford–Fulkerson Algorithm
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Guava CharMatcher
Spring Boot - Admin Client
Spring REST API + OAuth2 + Angular
Apache Commons Collections Bag
Java Program to Generate a Random UnDirected Graph for a Given Number of Edges
Java Program to implement Array Deque
A Quick Guide to Spring Cloud Consul
Java Program to Implement Ternary Heap
How to Read a Large File Efficiently with Java
An Introduction to ThreadLocal in Java
Java Program to Implement Bubble Sort
Java Program to Implement the Edmond’s Algorithm for Maximum Cardinality Matching
Guide to Guava Table
Constructor Injection in Spring with Lombok
How to Read a File in Java
Lớp Arrarys trong Java (Arrays Utility Class)