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

칵테일 정렬을 위한 자바 프로그램

<시간/>

칵테일 정렬은 요소가 왼쪽에서 오른쪽으로 반복되고 가장 큰 요소가 먼저 올바른 위치로 이동하는 방식인 버블 정렬과 대조적으로 작동합니다. 칵테일 정렬에서 요소는 교대로 양방향(왼쪽 및 오른쪽)으로 반복됩니다.

다음은 칵테일 정렬 프로그램입니다 -

예시

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

출력

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

첫 번째 단계에서 루프는 왼쪽에서 오른쪽으로 실행되며(거품 정렬과 유사) 그 동안 인접한 항목이 비교됩니다. 왼손 값이 오른손 값보다 크면 값이 바뀝니다. 첫 번째 반복이 끝나면 배열의 끝에서 가장 큰 요소를 찾습니다. 다음 단계에서 루프는 가장 최근에 정렬된 항목을 남겨두고 오른쪽에서 왼쪽으로 실행됩니다. 여기서 다시 인접한 요소를 비교하고 더 큰 요소가 배열의 끝에 추가됩니다.