Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

정렬 계산을 위한 Java 프로그램

<시간/>

카운팅 정렬은 고유한 키 값을 가진 개체의 수를 셉니다. 예를 들어 보겠습니다 -

참고 − 아래 코드는 음수에도 사용할 수 있습니다.

예시

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

Demo라는 클래스에는 'count_sort' 함수가 포함되어 있습니다. 여기서 배열은 반복되고 카운트 값은 증가합니다.

다음으로 이 count 배열이 반복되고 이전 값이 다음 값에 할당됩니다. 배열이 다시 반복되고 배열의 요소가 결과 배열에 할당되고 개수 배열이 감소합니다. 그런 다음 배열이 다시 반복되고 결과 배열의 요소가 배열에 할당됩니다. 콘솔에 데이터를 인쇄하는 인쇄 기능이 정의되어 있습니다. 주 함수는 배열의 요소를 정의하고 이러한 요소에 대해 카운트 정렬을 호출합니다.