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

Bitonic Sort를 위한 자바 프로그램

<시간/>

Bitonic Sort에서 비교는 정렬할 데이터에 의존하지 않고 미리 정의된 순서(Bitonic sequence)로 수행됩니다. Bitonic Sort Java 프로그램의 예를 살펴보겠습니다. -

예시

public class Demo{
   void compare_swap(int my_arr[], int i, int j, int direction){
      if ((my_arr[i] > my_arr[j] && direction == 1) || (my_arr[i] < my_arr[j] && direction == 0)){
         int temp = my_arr[i];
         my_arr[i] = my_arr[j];
         my_arr[j] = temp;
      }
   }
   void merge_vals(int my_arr[], int low, int cnt, int direction){
      if (cnt>1){
         int k = cnt/2;
         for (int i=low; i<low+k; i++)
         compare_swap(my_arr,i, i+k, direction);
         merge_vals(my_arr,low, k, direction);
         merge_vals(my_arr,low+k, k, direction);
      }
   }
   void sort_vals(int my_arr[], int low, int cnt, int direction){
      if (cnt>1){
         int k = cnt/2;
         sort_vals(my_arr, low, k, 1);
         sort_vals(my_arr,low+k, k, 0);
         merge_vals(my_arr, low, cnt, direction);
      }
   }
   static void print_vals(int my_arr[]){
      int n = my_arr.length;
      for (int i=0; i<n; ++i)
      System.out.print(my_arr[i] + " ");
      System.out.println();
   }
   public static void main(String args[]){
      int my_arr[] = {12, 67, 91, 54, 72, 32, 11, 0};
      int up = 1;
      Demo my_ob = new Demo();
      System.out.println("The object of the class has been created.");
      my_ob.sort_vals(my_arr, 0, my_arr.length, up);
      System.out.println("The array after performing bitonic sort is");
      print_vals(my_arr);
   }
}

출력

The object of the class has been created.
The array after performing bitonic sort is
0 11 12 32 54 67 72 91

Demo라는 클래스에는 배열을 매개변수로 사용하고 정렬이 수행되어야 하는 방향을 확인하는 'compare_swap' 함수가 포함되어 있습니다. 따라서 요소가 교환됩니다. 'merge_vals'라는 또 다른 함수가 정의되어 배열을 반복하고 특정 값으로 'compare_swap' 함수를 호출합니다.

다음으로 'merge_vals' 함수를 다양한 매개변수로 호출합니다. 다른 값으로 함수 내부에서 호출되는 'sort_vals'라는 또 다른 함수가 정의되어 있습니다. 그런 다음 이러한 정렬된 값

병합됩니다. 배열을 매개변수로 사용하고 배열의 요소를 통해 'for' 루프를 실행하고 콘솔에 인쇄하는 'print_vals'라는 정적 함수가 정의되어 있습니다.

main 함수는 'up' 변수에 대한 배열과 값을 정의합니다. 새로운 클래스 객체가 생성되고 정의된 배열에서 'sort_now' 함수가 호출됩니다. 그런 다음 출력이 콘솔에 인쇄됩니다.