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

Comb Sort를 위한 자바 프로그램

<시간/>

Java의 Comb Sort는 목록의 끝에 위치한 더 작은 값을 제거하고 반전은 하나씩 제거됩니다. 예를 들어 보겠습니다 -

예시

import java.util.Arrays;
public class Demo{
   void comb_sort(int nums[]){
      int len_gap = nums.length;
      float shrink_val = 1.3f;
      boolean swap = false;
      while (len_gap > 1 || swap) {
         if (len_gap > 1) {
            len_gap = (int)(len_gap / shrink_val);
         }
         swap = false;
         for (int i = 0; len_gap + i < nums.length; i++){
            if (nums[i] > nums[i + len_gap]) {
               swap(nums, i, i + len_gap);
               swap = true;
            }
         }
      }
   }
   private static void swap(int nums[], int x, int y) {
      Integer temp = nums[x];
      nums[x] = nums[y];
      nums[y] = temp;
   }
   public static void main(String args[]){
      Demo ob = new Demo();
      int nums[] = {6, 78, 90, -12, -45, 0, -1, 45};
      System.out.println("The original array contains ");
      System.out.println(Arrays.toString(nums));
      ob.comb_sort(nums);
      System.out.println("The sorted array is ");
      System.out.println(Arrays.toString(nums));
   }
}

출력

The original array contains
[6, 78, 90, -12, -45, 0, -1, 45]
The sorted array is
[-45, -12, -1, 0, 6, 45, 78, 90]

Demo라는 클래스에는 'comb_sort' 함수가 포함되어 있습니다. 여기서 배열의 길이를 정의하고 이 길이가 1보다 크면 배열의 길이를 1.3f로 나눈 값인 새로운 'len_gap'이 정의됩니다.

이 배열은 반복되고 배열의 요소가 비교되며 요소가 요소에 특정 'len_gap'을 더한 것보다 크면 요소가 교체됩니다. 그런 다음 요소에 대해 간단한 버블 정렬도 수행됩니다. 메인 함수에서는 배열을 정의하고 Demo 클래스의 인스턴스를 정의하고 배열에서 'comb_sort' 함수를 호출합니다.