काउंटिंग सॉर्ट अलग-अलग प्रमुख मानों वाली वस्तुओं की संख्या की गणना करता है। आइए एक उदाहरण देखें -
नोट − नीचे दिए गए कोड का उपयोग ऋणात्मक संख्याओं के साथ भी किया जा सकता है।
उदाहरण
import java.util.*; public class Demo{ static void count_sort(int[] arr){ int max_val = Arrays.stream(arr).max().getAsInt(); int min_val = Arrays.stream(arr).min().getAsInt(); int range = max_val - min_val + 1; int count[] = new int[range]; int result[] = new int[arr.length]; for (int i = 0; i < arr.length; i++){ count[arr[i] - min_val]++; } for (int i = 1; i < count.length; i++){ count[i] += count[i - 1]; } for (int i = arr.length - 1; i >= 0; i--){ result[count[arr[i] - min_val] - 1] = arr[i]; count[arr[i] - min_val]--; } for (int i = 0; i < arr.length; i++){ arr[i] = result[i]; } } static void printVal(int[] arr){ for (int i = 0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(""); } public static void main(String[] args){ int[] arr = {-5, 0, -3, 8, 34, 56, 89, -11, -95, -1, 10}; System.out.println("The array contains"); for (int i = 0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); System.out.println("Implementing Counting Sort in Java results in : "); count_sort(arr); printVal(arr); } }
आउटपुट
The array contains -5 0 -3 8 34 56 89 -11 -95 -1 10 Implementing Counting Sort in Java results in : -95 -11 -5 -3 -1 0 8 10 34 56 89
डेमो नामक एक वर्ग में 'काउंट_सॉर्ट' फ़ंक्शन होता है। यहां, सरणी को फिर से चालू किया गया है और गणना मान वृद्धिशील है।
इसके बाद, इस गिनती सरणी को पुनरावृत्त किया जाता है और पिछला मान अगले मान को असाइन किया जाता है। सरणी को फिर से पुनरावृत्त किया जाता है और सरणी का तत्व परिणाम सरणी को सौंपा जाता है और गिनती सरणी कम हो जाती है। फिर, सरणी को फिर से पुनरावृत्त किया जाता है और परिणाम सरणी में तत्वों को सरणी को सौंपा जाता है। एक प्रिंट फ़ंक्शन परिभाषित किया गया है जो कंसोल पर डेटा प्रिंट करता है। मुख्य कार्य सरणी के तत्वों को परिभाषित करता है और इन तत्वों पर गिनती क्रम को कॉल करता है।