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 sử dụng Lớp FilePermission trong java
What is a POJO Class?
A Guide to Java SynchronousQueue
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
HandlerAdapters in Spring MVC
Spring @RequestMapping New Shortcut Annotations
Hướng dẫn tạo và sử dụng ThreadPool trong Java
The Registration API becomes RESTful
Hướng dẫn Java Design Pattern – Abstract Factory
A Comparison Between Spring and Spring Boot
Java Program to Represent Graph Using Adjacency Matrix
Lập trình mạng với java
Getting Started with Stream Processing with Spring Cloud Data Flow
Java Program to Implement Stack
Java Program to Find Minimum Element in an Array using Linear Search
Spring MVC Setup with Kotlin
Introduction to the Java NIO2 File API
A Quick JUnit vs TestNG Comparison
How To Serialize and Deserialize Enums with Jackson
Guide to java.util.concurrent.Future
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
@DynamicUpdate with Spring Data JPA
Apache Commons Collections BidiMap
Converting String to Stream of chars
Sử dụng CountDownLatch trong Java
Spring Boot - Introduction
Spring WebClient vs. RestTemplate
Logout in an OAuth Secured Application
Removing all Nulls from a List in Java
Sending Emails with Java
Spring RequestMapping
The XOR Operator in Java