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:
Hướng dẫn Java Design Pattern – Builder
Java Program to Implement Find all Cross Edges in a Graph
Các nguyên lý thiết kế hướng đối tượng – SOLID
Optional trong Java 8
Guide to Spring Cloud Kubernetes
Java Program to add two large numbers using Linked List
Convert char to String in Java
Multi Dimensional ArrayList in Java
Giới thiệu Google Guice – Injection, Scope
Java Program to Construct an Expression Tree for an Prefix Expression
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Spring MVC Tutorial
A Guide to System.exit()
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java Program to Implement Karatsuba Multiplication Algorithm
Spring Boot - Database Handling
Java Program to Implement Segment Tree
Java Program to Perform String Matching Using String Library
Introduction to the Java ArrayDeque
Encode a String to UTF-8 in Java
Service Registration with Eureka
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
An Intro to Spring Cloud Vault
Java Copy Constructor
ClassNotFoundException vs NoClassDefFoundError
Setting Up Swagger 2 with a Spring REST API
Java Program to Generate a Random Subset by Coin Flipping
Java Program to Find Minimum Element in an Array using Linear Search
Netflix Archaius with Various Database Configurations
Getting Started with Custom Deserialization in Jackson
Hướng dẫn Java Design Pattern – Abstract Factory
Java Program to Find Nearest Neighbor Using Linear Search