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:
Giới thiệu JDBC Connection Pool
Java Program to Describe the Representation of Graph using Incidence Matrix
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Java Program to Implement Merge Sort Algorithm on Linked List
Spring Boot - CORS Support
Java Program to Implement Radix Sort
XML Serialization and Deserialization with Jackson
Java Program to Generate a Random Subset by Coin Flipping
Java Program to Implement Segment Tree
Dockerizing a Spring Boot Application
The Difference Between Collection.stream().forEach() and Collection.forEach()
Calling Stored Procedures from Spring Data JPA Repositories
Getting Started with Custom Deserialization in Jackson
Hướng dẫn sử dụng lớp Console trong java
Spring Security OAuth Login with WebFlux
Lập trình đa luồng với CompletableFuture trong Java 8
Java Map With Case-Insensitive Keys
Java Program to Find the Longest Path in a DAG
Guide to @ConfigurationProperties in Spring Boot
How to Change the Default Port in Spring Boot
Spring Boot - Bootstrapping
Guide to Spring Cloud Kubernetes
Java Program to Find Nearest Neighbor Using Linear Search
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Encode/Decode to/from Base64
Count Occurrences of a Char in a String
Introduction to Spring MVC HandlerInterceptor
A Quick Guide to Spring MVC Matrix Variables
Get the workstation name or IP
Quick Guide to Spring MVC with Velocity
Java Program to Implement Sieve Of Eratosthenes
Java Scanner hasNext() vs. hasNextLine()