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:
So sánh ArrayList và LinkedList trong Java
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Spring MVC Custom Validation
More Jackson Annotations
Introduction to Netflix Archaius with Spring Cloud
Java Deep Learning Essentials - Yusuke Sugomori
Java Program to Implement CopyOnWriteArrayList API
Giới thiệu java.io.tmpdir
Java Program to Use Dynamic Programming to Solve Approximate String Matching
How to Change the Default Port in Spring Boot
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Spring Boot Change Context Path
Java Program to Implement Heap’s Algorithm for Permutation of N Numbers
Guide to java.util.concurrent.Locks
Java Program to Implement the One Time Pad Algorithm
Java Program to Use rand and srand Functions
Jackson Unmarshalling JSON with Unknown Properties
Tổng quan về ngôn ngữ lập trình java
Java Program to Implement Adjacency List
Java Program to Implement LinkedBlockingQueue API
How to Return 404 with Spring WebFlux
Hướng dẫn Java Design Pattern – Chain of Responsibility
Java Program to Implement Sorted Circularly Singly Linked List
Send email with authentication
Jackson JSON Views
Guide to Dynamic Tests in Junit 5
Giới thiệu luồng vào ra (I/O) trong Java
Getting Started with Forms in Spring MVC
Sắp xếp trong Java 8
Simultaneous Spring WebClient Calls
So sánh HashMap và Hashtable trong Java