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 Implement LinkedHashSet API
Java Program to Implement Hash Tables
Spring Data JPA @Modifying Annotation
Hướng dẫn Java Design Pattern – Flyweight
Java Program to Implement EnumMap API
Sử dụng CountDownLatch trong Java
Java Program to Find the Edge Connectivity of a Graph
Check if there is mail waiting
Collect a Java Stream to an Immutable Collection
Introduction to Spring Method Security
Control the Session with Spring Security
Hướng dẫn Java Design Pattern – Proxy
Java Program to Check whether Graph is Biconnected
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
Spring RequestMapping
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Java Program to Implement AVL Tree
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
Introduction to Spring Data MongoDB
Đồng bộ hóa các luồng trong Java
Java Program to implement Circular Buffer
Spring Boot - Enabling HTTPS
Supplier trong Java 8
Java – Delete a File
Spring Web Annotations
Java Program to Implement Circular Doubly Linked List
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Spring Security Authentication Provider
Versioning a REST API
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Implement Ternary Search Algorithm