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:
ETL with Spring Cloud Data Flow
String Operations with Java Streams
Getting the Size of an Iterable in Java
Java Program to Represent Graph Using Incidence List
Java Program to implement Bit Matrix
Java Program to Implement the MD5 Algorithm
How to Get All Dates Between Two Dates?
Hamcrest Collections Cookbook
The Registration API becomes RESTful
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Login For a Spring Web App – Error Handling and Localization
Java Program to Implement Attribute API
Phân biệt JVM, JRE, JDK
Encode a String to UTF-8 in Java
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Spring Data Reactive Repositories with MongoDB
Spring Cloud Series – The Gateway Pattern
Collect a Java Stream to an Immutable Collection
Java Program to Implement HashMap API
REST Web service: Basic Authentication trong Jersey 2.x
Giới thiệu Java 8
Multipart Upload with HttpClient 4
Feign – Tạo ứng dụng Java RESTful Client
Java Program to Implement Triply Linked List
Java Program to Implement the Program Used in grep/egrep/fgrep
Check if there is mail waiting
MyBatis with Spring
Connect through a Proxy
How to Read HTTP Headers in Spring REST Controllers
Consumer trong Java 8
Java Program to Permute All Letters of an Input String