This is a java program to sort an elements in order n time. Bucket sort can be used to achieve this goal. Bucket sort is O(n) algorithm in time but takes more space, than the normal algorithms.
Here is the source code of the Java Program to Implement Sorting of Less than 100 Numbers in O(n) Complexity. 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 less than 100 in O(n) time
//Bucket sort is O(n) algorithm
import java.util.Random;
public class Order_n_Sorting_Algorithm
{
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 O(n) BUCKET SORT algorithm");
Random random = new Random();
int N = 25;
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 Order_n_Sorting_Algorithm.java $ java Order_n_Sorting_Algorithm Sorting of randomly generated numbers using O(n) BUCKET SORT algorithm Original Sequence: 43 50 28 1 80 8 77 92 55 44 15 42 47 98 44 12 78 36 73 57 86 36 11 35 51 Sorted Sequence: 1 8 11 12 15 28 35 36 36 42 43 44 44 47 50 51 55 57 73 77 78 80 86 92 98
Related posts:
Converting Between Byte Arrays and Hexadecimal Strings in Java
Hướng dẫn Java Design Pattern – Object Pool
Java – Random Long, Float, Integer and Double
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Quick Guide to java.lang.System
Converting between an Array and a List in Java
Java 8 Streams peek() API
Inject Parameters into JUnit Jupiter Unit Tests
Static Content in Spring WebFlux
Guide to Dynamic Tests in Junit 5
Java Program to Implement Min Hash
Java Program to Generate Random Numbers Using Probability Distribution Function
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Java CyclicBarrier vs CountDownLatch
Java Program to Implement Bubble Sort
Spring Boot - Tomcat Port Number
Java Program to Implement ArrayDeque API
Java Program to Implement Stack
Disable Spring Data Auto Configuration
Beans and Dependency Injection
Remove All Occurrences of a Specific Value from a List
Prevent Cross-Site Scripting (XSS) in a Spring Application
Primitive Type Streams in Java 8
Introduction to Liquibase Rollback
DynamoDB in a Spring Boot Application Using Spring Data
Hướng dẫn sử dụng luồng vào ra ký tự trong Java
Spring Security Custom AuthenticationFailureHandler
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Java Program to Implement Sparse Matrix
Java Program to Implement Iterative Deepening
The XOR Operator in Java