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:
Java Program to Compute the Volume of a Tetrahedron Using Determinants
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Encode a String to UTF-8 in Java
Java – Random Long, Float, Integer and Double
Spring Boot - Sending Email
Quick Intro to Spring Cloud Configuration
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Java Program to Implement the String Search Algorithm for Short Text Sizes
Java Program to Implement Binomial Tree
Java Program to implement Dynamic Array
HttpAsyncClient Tutorial
Dynamic Proxies in Java
A Custom Media Type for a Spring REST API
Chuyển đổi từ HashMap sang ArrayList
Java Program to Implement HashMap API
A Guide to Java 9 Modularity
Java Program to Find the Edge Connectivity of a Graph
Spring Security Custom AuthenticationFailureHandler
Phương thức forEach() trong java 8
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
Java Program to Implement Control Table
Java Program to Implement Ternary Heap
Join and Split Arrays and Collections in Java
Một số ký tự đặc biệt trong Java
Cachable Static Assets with Spring MVC
Spring Boot - Enabling HTTPS
Introduction to Apache Commons Text
Một số nguyên tắc, định luật trong lập trình
Java Program to Represent Graph Using Incidence Matrix
Java Program to Implement Nth Root Algorithm
Jackson – JsonMappingException (No serializer found for class)
How to Set TLS Version in Apache HttpClient