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 wheel Sieve to Generate Prime Numbers Between Given Range
Java Program to Implement Sorted Array
REST Pagination in Spring
Java program to Implement Tree Set
Java Program to implement Bit Set
Creating a Custom Starter with Spring Boot
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Java CyclicBarrier vs CountDownLatch
REST Web service: Basic Authentication trong Jersey 2.x
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Using JWT with Spring Security OAuth (legacy stack)
Spring Boot - Zuul Proxy Server and Routing
Spring Boot - Quick Start
Java Program to Implement RoleList API
A Guide to Java 9 Modularity
How to Read a File in Java
Object cloning trong java
Java 8 – Powerful Comparison with Lambdas
Custom Thread Pools In Java 8 Parallel Streams
Handling Errors in Spring WebFlux
HttpClient Basic Authentication
Comparing Arrays in Java
Hướng dẫn sử dụng Java Reflection
Add Multiple Items to an Java ArrayList
Spring Data Java 8 Support
Chương trình Java đầu tiên
Java – Generate Random String
Check if a String is a Palindrome in Java
Guide to Character Encoding
Validate email address exists or not by Java Code
HashSet trong java
Spring WebClient vs. RestTemplate