Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để sắp xếp đếm

Sắp xếp Đếm đếm số lượng đối tượng có các giá trị khóa riêng biệt. Hãy để chúng tôi xem một ví dụ -

Lưu ý - Mã dưới đây cũng có thể được sử dụng với các số âm.

Ví dụ

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);
   }  
}

Đầu ra

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

Một lớp có tên Demo chứa hàm ‘count_sort’. Ở đây, mảng được lặp lại và giá trị đếm được tăng dần.

Tiếp theo, mảng đếm này được lặp lại và giá trị trước đó được gán cho giá trị tiếp theo. Mảng được lặp lại nhiều lần và phần tử của mảng được gán cho mảng kết quả và mảng đếm được giảm dần. Sau đó, mảng được lặp lại nhiều lần và các phần tử trong mảng kết quả được gán cho mảng. Chức năng in được định nghĩa để in dữ liệu trên bảng điều khiển. Hàm main xác định các phần tử của mảng và gọi sắp xếp số lượng trên các phần tử này.