कॉकटेल सॉर्ट बबल सॉर्ट के विपरीत काम करता है, जिसमें तत्वों को बाएं से दाएं पुनरावृत्त किया जाता है, और सबसे बड़ा तत्व पहले अपनी सही स्थिति में लाया जाता है और इसी तरह। कॉकटेल क्रम में, तत्वों को बारी-बारी से दोनों दिशाओं (बाएं और दाएं) में पुनरावृत्त किया जाता है।
कॉकटेल सॉर्ट के लिए कार्यक्रम निम्नलिखित है -
उदाहरण
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
पहले चरण में, लूप को बाएं से दाएं (बबल सॉर्ट के समान) चलाया जाता है, जिसके दौरान आसन्न वस्तुओं की तुलना की जाती है। यदि बाएं हाथ का मूल्य दाएं हाथ के मूल्य से अधिक है, तो मूल्यों की अदला-बदली की जाती है। एक बार पहला पुनरावृत्ति समाप्त हो जाने के बाद, सरणी के अंत में सबसे बड़ा तत्व मिलेगा। अगले चरण में, हाल ही में सॉर्ट किए गए आइटम को छोड़कर, लूप को दाएं से बाएं चलाया जाता है। यहां फिर से, आसन्न तत्वों की तुलना की जाती है और बड़े तत्व को सरणी के अंत में जोड़ा जाता है।