Cocktail Sort

Speed

Number of Elements

[Range: 10-100]

Implementations

          
            void cocktailSort(int array[], int n){
              bool swapped = true;
              int start = 0;
              int end = n - 1;
              int temp;

              while (swapped){
                swapped = false;

                for (int i = start; i < end; i++){
                  if (array[i] > array[i + 1]){
                    temp = array[i + 1];
                    array[i + 1] = array[i];
                    array[i] = temp;
                    swapped = true;
                  }
                }

                if (!swapped) break;

                swapped = false;
                end = end - 1;

                for (int i = end - 1; i >= start; i--){
                  if (a[i] > a[i + 1]){
                    temp = array[i + 1];
                    array[i + 1] = array[i];
                    array[i] = temp;
                    swapped = true;
                  }
                }

                start = start + 1;
              }
            }
          
        
          
            def cocktailSort(array):
              n = len(array)
              swapped = True
              start = 0
              end = n - 1;
              
              while (swapped):
                swapped = False
                
                for i in range (start, end):
                  if (array[i] > array[i + 1]):
                    array[i], array[i + 1] = array[i + 1], array[i]
                    swapped = True

                if (!swapped):
                  break

                swapped = False 
                end = end - 1

                for i in range (end - 1, start - 1, -1):
                  if (array[i] > array[i + 1]):
                    array[i], array[i + 1] = array[i + 1], array[i]
                    swapped = True

                start = start + 1
              
          
        
          
            function cocktailSort(array){
              let swapped = true;
              let start = 0;
              let end = array.length;
              let temp;

              while (swapped) {
                swapped = false;

                for (let i = start; i < end - 1; i++){
                  if (array[i] > array[i +1 ]){
                    temp = a[i + 1];
                    array[i + 1] = array[i];
                    array[i] = temp;
                    swapped = true;
                  }
                }

                if (!swapped){
                  break;
                }

                swapped = false;
                end--;

                for (let i = end - 1; i >= start; i--){
                  if (array[i] > array[i +1 ]){
                    temp = a[i + 1];
                    array[i + 1] = array[i];
                    array[i] = temp;
                    swapped = true;
                  }
                }

                start++;
              }
            }
          
        

About Cocktail Sort

The Cocktail sorting method is a variant of the Bubble Sort. The difference between the two is that the Cocktail sort traverses the input array in ascending and descending order repeatedly, while a Bubble sort only traverses the array in ascending order.


Time Complexity

The Cocktail sorting method has a time complexity of: O(N2)