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:
Write/Read cookies using HTTP and Read a file from the internet
Java Program to Implement Fenwick Tree
Map to String Conversion in Java
Template Engines for Spring
Practical Java Examples of the Big O Notation
Java Program to Find Transitive Closure of a Graph
Wrapper Classes in Java
Java Program to Implement LinkedHashMap API
A Guide to Apache Commons Collections CollectionUtils
Lớp Collections trong Java (Collections Utility Class)
REST Pagination in Spring
Default Password Encoder in Spring Security 5
Registration with Spring Security – Password Encoding
Calling Stored Procedures from Spring Data JPA Repositories
Giới thiệu Json Web Token (JWT)
Java Program to Test Using DFS Whether a Directed Graph is Strongly Connected or Not
Server-Sent Events in Spring
Java Program to Implement Brent Cycle Algorithm
Spring Boot Integration Testing with Embedded MongoDB
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
How to use the Spring FactoryBean?
How to Replace Many if Statements in Java
Apache Commons Collections OrderedMap
Guide to the Volatile Keyword in Java
HashSet trong Java hoạt động như thế nào?
Spring REST API + OAuth2 + Angular
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Java InputStream to String
Apache Commons Collections BidiMap
Check if there is mail waiting
Java Program to Check Cycle in a Graph using Topological Sort
Phân biệt JVM, JRE, JDK