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:
Server-Sent Events in Spring
Java Program to Find the Peak Element of an Array O(n) time (Naive Method)
Query Entities by Dates and Times with Spring Data JPA
Java Program to Implement Shoelace Algorithm
Java Program to Implement RoleUnresolvedList API
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Login For a Spring Web App – Error Handling and Localization
Java Program to Implement Range Tree
Introduction to PCollections
Java Program to Check Cycle in a Graph using Graph traversal
Java Program to Implement Triply Linked List
Java Program to Implement Bit Array
Guide to CopyOnWriteArrayList
Luồng Daemon (Daemon Thread) trong Java
Java Program to Implement Pagoda
Java Program to Implement AA Tree
Disable DNS caching
Giới thiệu java.io.tmpdir
Giới thiệu Google Guice – Injection, Scope
Java Program to Generate N Number of Passwords of Length M Each
Spring Boot - Google OAuth2 Sign-In
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Spring Boot Tutorial – Bootstrap a Simple Application
Guide to Selenium with JUnit / TestNG
Spring Boot with Multiple SQL Import Files
Spring MVC Async vs Spring WebFlux
Java Program to Implement the Hill Cypher
Java InputStream to String
String Joiner trong Java 8
Các nguyên lý thiết kế hướng đối tượng – SOLID
Java Program to find the number of occurrences of a given number using Binary Search approach