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:
Getting Started with Stream Processing with Spring Cloud Data Flow
A Guide to Spring Cloud Netflix – Hystrix
Java Program to Implement Sieve Of Atkin
Java Program to Implement Affine Cipher
Java – Get Random Item/Element From a List
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Exploring the New Spring Cloud Gateway
Từ khóa throw và throws trong Java
Servlet 3 Async Support with Spring MVC and Spring Security
Split a String in Java
Introduction to Spring Data REST
Performance Difference Between save() and saveAll() in Spring Data
HttpClient Basic Authentication
Period and Duration in Java
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Java – Combine Multiple Collections
Limiting Query Results with JPA and Spring Data JPA
Java Program to Implement RoleList API
Java Program to Implement Ford–Fulkerson Algorithm
Java Program to Find Number of Articulation points in a Graph
A Guide to BitSet in Java
Java Program to implement Circular Buffer
Spring Boot - OAuth2 with JWT
Java 8 Stream findFirst() vs. findAny()
TreeSet và sử dụng Comparable, Comparator trong java
Giới thiệu SOAP UI và thực hiện test Web Service
Explain about URL and HTTPS protocol
Hướng dẫn Java Design Pattern – Strategy
Java Program to Check for balanced parenthesis by using Stacks
Java Program to Implement Sparse Matrix
Guide to Java 8 groupingBy Collector
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java