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 Evaluate an Expression using Stacks
Sending Emails with Java
Apache Camel with Spring Boot
Spring Boot - Database Handling
Create a Custom Auto-Configuration with Spring Boot
Guide to BufferedReader
Spring RestTemplate Request/Response Logging
Java – Write a Reader to File
Immutable Objects in Java
Filtering and Transforming Collections in Guava
Assertions in JUnit 4 and JUnit 5
REST Pagination in Spring
Introduction to the Java NIO2 File API
New Features in Java 10
Java Program to Implement Karatsuba Multiplication Algorithm
Converting a List to String in Java
Introduction to Project Reactor Bus
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Java Program to Perform Partition of an Integer in All Possible Ways
The DAO with JPA and Spring
Removing all duplicates from a List in Java
Java CyclicBarrier vs CountDownLatch
Spring Boot - Internationalization
Java Program to Perform Uniform Binary Search
Guava CharMatcher
Control Structures in Java
Transaction Propagation and Isolation in Spring @Transactional
Jackson JSON Views
Java Program to Implement Patricia Trie
Deploy a Spring Boot WAR into a Tomcat Server
Refactoring Design Pattern với tính năng mới trong Java 8
Get and Post Lists of Objects with RestTemplate