Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java สำหรับค็อกเทล Sort


Cocktail Sort ทำงานตรงกันข้ามกับการเรียงลำดับแบบฟอง โดยองค์ประกอบจะถูกวนซ้ำจากซ้ายไปขวา และองค์ประกอบที่ใหญ่ที่สุดจะถูกนำไปยังตำแหน่งที่ถูกต้องก่อนและอื่นๆ ในการจัดเรียงค็อกเทล องค์ประกอบจะถูกทำซ้ำทั้งสองทิศทาง (ซ้ายและขวา) โดยสลับกัน

ต่อไปนี้เป็นโปรแกรมสำหรับประเภทค็อกเทล -

ตัวอย่าง

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

ในขั้นตอนแรก วนรอบจะรันจากซ้ายไปขวา (คล้ายกับการเรียงลำดับแบบฟอง) ในระหว่างนั้น ระบบจะเปรียบเทียบรายการที่อยู่ติดกัน ถ้าค่ามือซ้ายมากกว่าค่ามือขวา ค่าจะถูกสลับ เมื่อการวนซ้ำครั้งแรกสิ้นสุดลง จะพบองค์ประกอบที่ใหญ่ที่สุดที่ส่วนท้ายของอาร์เรย์ ในขั้นตอนถัดไป วนรอบจะทำงานจากขวาไปซ้าย โดยออกจากรายการที่เรียงลำดับล่าสุด ที่นี่อีกครั้ง มีการเปรียบเทียบองค์ประกอบที่อยู่ติดกันและเพิ่มองค์ประกอบที่มากกว่าที่ส่วนท้ายของอาร์เรย์