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:
The Java 8 Stream API Tutorial
Phương thức tham chiếu trong Java 8 – Method References
Removing all Nulls from a List in Java
Java Program to Implement HashSet API
Java Multi-line String
Debugging Reactive Streams in Java
Java Program to Print only Odd Numbered Levels of a Tree
LinkedList trong java
Java Program to Implement the Hill Cypher
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Sort a HashMap in Java
Guide to the Java Clock Class
New Stream Collectors in Java 9
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Functional Interface trong Java 8
Guide to Character Encoding
Biểu thức Lambda trong Java 8 – Lambda Expressions
Java 8 and Infinite Streams
StringBuilder vs StringBuffer in Java
Hướng dẫn sử dụng biểu thức chính quy (Regular Expression) trong Java
Annotation trong Java 8
Spring RestTemplate Request/Response Logging
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Uploading MultipartFile with Spring RestTemplate
Java – Generate Random String
Hướng dẫn Java Design Pattern – Abstract Factory
The StackOverflowError in Java
Lập trình đa luồng với CompletableFuture trong Java 8
Introduction to Spring Cloud CLI
Java Program to Implement Find all Back Edges in a Graph
Concurrent Test Execution in Spring 5
Feign – Tạo ứng dụng Java RESTful Client