This is a Java Program to implement Counting Sort Algorithm. This program is to sort a list of numbers.
Here is the source code of the Java program to implement Counting Sort Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/**
** Java Program to Implement Counting Sort
**/
import java.util.Scanner;
/** Class CountingSort **/
public class CountingSort
{
private static final int MAX_RANGE = 1000000;
/** Counting Sort function **/
public static void sort( int[] arr )
{
int N = arr.length;
if (N == 0)
return;
/** find max and min values **/
int max = arr[0], min = arr[0];
for (int i = 1; i < N; i++)
{
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
}
int range = max - min + 1;
/** check if range is small enough for count array **/
/** else it might give out of memory exception while allocating memory for array **/
if (range > MAX_RANGE)
{
System.out.println("\nError : Range too large for sort");
return;
}
int[] count = new int[range];
/** make count/frequency array for each element **/
for (int i = 0; i < N; i++)
count[arr[i] - min]++;
/** modify count so that positions in final array is obtained **/
for (int i = 1; i < range; i++)
count[i] += count[i - 1];
/** modify original array **/
int j = 0;
for (int i = 0; i < range; i++)
while (j < count[i])
arr[j++] = i + min;
}
/** Main method **/
public static void main(String[] args)
{
Scanner scan = new Scanner( System.in );
System.out.println("Counting Sort Test\n");
int n, i;
/** Accept number of elements **/
System.out.println("Enter number of integer elements");
n = scan.nextInt();
/** Create integer array on n elements **/
int arr[] = new int[ n ];
/** Accept elements **/
System.out.println("\nEnter "+ n +" integer elements");
for (i = 0; i < n; i++)
arr[i] = scan.nextInt();
/** Call method sort **/
sort(arr);
/** Print sorted Array **/
System.out.println("\nElements after sorting ");
for (i = 0; i < n; i++)
System.out.print(arr[i]+" ");
System.out.println();
}
}
Counting Sort Test Enter number of integer elements 20 Enter 20 integer elements 54 67 13 24 76 37 97 10 67 24 6 28 5 19 63 1 71 83 97 24 Elements after sorting 1 5 6 10 13 19 24 24 24 28 37 54 63 67 67 71 76 83 97 97
Related posts:
Comparing Dates in Java
Transactions with Spring and JPA
New Features in Java 14
Spring @Primary Annotation
How to Delay Code Execution in Java
Compact Strings in Java 9
A Comparison Between Spring and Spring Boot
Java Program to Implement Double Order Traversal of a Binary Tree
The HttpMediaTypeNotAcceptableException in Spring MVC
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Java Program to Implement Find all Cross Edges in a Graph
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
Spring Boot - Scheduling
A Custom Media Type for a Spring REST API
Toán tử trong java
Java Program to Implement Stack API
Java Program to Implement Stack using Two Queues
Lớp Collections trong Java (Collections Utility Class)
Java Program to Search for an Element in a Binary Search Tree
Java Program to Search Number Using Divide and Conquer with the Aid of Fibonacci Numbers
Lập trình đa luồng với CompletableFuture trong Java 8
The StackOverflowError in Java
Java Program to Implement Park-Miller Random Number Generation Algorithm
Java – InputStream to Reader
Guide to UUID in Java
Java Program to Solve any Linear Equations
A Guide to Iterator in Java
Java Program to Perform Left Rotation on a Binary Search Tree
A Guide to the Java LinkedList
Java Program to Implement the Schonhage-Strassen Algorithm for Multiplication of Two Numbers
Returning Image/Media Data with Spring MVC
A Quick Guide to Spring Cloud Consul