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 Solve Tower of Hanoi Problem using Stacks
Removing Elements from Java Collections
Display Auto-Configuration Report in Spring Boot
Returning Custom Status Codes from Spring Controllers
Java – Reader to String
Java Program to Implement Johnson’s Algorithm
Lập trình đa luồng với CompletableFuture trong Java 8
Java Program to Evaluate an Expression using Stacks
Spring Boot - Google OAuth2 Sign-In
Recommended Package Structure of a Spring Boot Project
Java Program to Implement Quick Sort Using Randomization
Jackson Ignore Properties on Marshalling
Working with Kotlin and JPA
Java Program to Show the Duality Transformation of Line and Point
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
Consumer trong Java 8
Java Program to Implement Find all Forward Edges in a Graph
Count Occurrences of a Char in a String
Functional Interface trong Java 8
Spring AMQP in Reactive Applications
How to Get All Spring-Managed Beans?
Java Program to Implement Best-First Search
MyBatis with Spring
Java Program to Implement the Hill Cypher
Annotation trong Java 8
wait() and notify() Methods in Java
Giới thiệu Google Guice – Binding
HttpClient 4 – Follow Redirects for POST
The Order of Tests in JUnit
Java Program to Implement LinkedHashMap API
@DynamicUpdate with Spring Data JPA
Java Program to Implement Double Ended Queue