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

Chương trình Java để phân loại cocktail

Cocktail Sort hoạt động trái ngược với sắp xếp bong bóng, trong đó các phần tử được lặp lại từ trái sang phải và phần tử lớn nhất trước tiên được đưa đến đúng vị trí của nó, v.v. Trong phân loại cocktail, các phần tử được lặp lại theo cả hai hướng (trái và phải) theo kiểu xen kẽ.

Sau đây là chương trình Sắp xếp Cocktail -

Ví dụ

public class Demo{
   static int temp;
   static void Cocktail(int a[], int n){
      boolean swap = true;
      int begin = 0,i;
      int end = n - 1;
      while (swap) {
         swap = false;
         for (i = begin; i < end; ++i){
            if (a[i] > a[i + 1]){
               temp = a[i];
               a[i]=a[i+1];
               a[i+1]=temp;
               swap = true;
            }
         }
         if (!swap)
         break;
         swap = false;
         for (i = end - 1; i >= begin; --i){
            if (a[i] > a[i + 1]){
               temp = a[i];
               a[i]=a[i+1];
               a[i+1]=temp;
               swap = true;
            }
         }
         ++begin;
      }
   }
   public static void main(String[] args) {
      int my_arr[] = {34, 78, 90, 32, 67, 12, 1, 0, 95};
      Cocktail(my_arr, my_arr.length);
      System.out.println("The sorted array is ");
      for (int i = 0; i < my_arr.length; i++)
      System.out.print(my_arr[i]+" ");
      System.out.println();
   }
}

Đầu ra

The sorted array is
0 1 12 32 34 67 78 90 95

Trong bước đầu tiên, vòng lặp được chạy từ trái sang phải (tương tự như sắp xếp bong bóng), trong đó, các mục liền kề được so sánh. Nếu giá trị bên trái lớn hơn giá trị bên phải, các giá trị sẽ được hoán đổi. Khi lần lặp đầu tiên kết thúc, phần tử lớn nhất sẽ được tìm thấy ở cuối mảng. Trong bước tiếp theo, vòng lặp được chạy từ phải sang trái, bằng cách để lại mục được sắp xếp gần đây nhất. Ở đây một lần nữa, các phần tử liền kề được so sánh và phần tử lớn hơn được thêm vào cuối mảng.