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

Chương trình Java cho Comb Sort

Comb Sort trong Java loại bỏ các giá trị nhỏ hơn nằm ở cuối danh sách và các nghịch đảo bị loại bỏ từng cái một. Hãy để chúng tôi xem một ví dụ -

Ví dụ

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

Đầu ra

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

Một lớp có tên Demo chứa hàm ‘comb_sort’. Ở đây, độ dài của mảng được xác định và nếu độ dài này lớn hơn 1, một ‘len_gap’ mới được xác định là độ dài của mảng chia cho 1,3f.

Mảng này được lặp lại và các phần tử trong mảng được so sánh và nếu phần tử lớn hơn phần tử đó cộng với một ‘len_gap’ cụ thể, thì các phần tử sẽ được hoán đổi vị trí. Sau đó, một loại bong bóng đơn giản cũng được thực hiện trên các phần tử. Trong hàm main, mảng được định nghĩa và một thể hiện của lớp Demo được định nghĩa và hàm ‘comb_sort’ được gọi trên mảng.