Loại cocktail là một biến thể của loại bong bóng vừa là một thuật toán sắp xếp ổn định vừa là một loại so sánh còn được gọi là loại bong bóng hai chiều, loại máy lắc cocktail, loại máy lắc (cũng có thể đề cập đến một biến thể của loại lựa chọn), sắp xếp gợn sóng, sắp xếp xáo trộn , hoặc sắp xếp con thoi. Thuật toán khác với sắp xếp bong bóng ở chỗ nó sắp xếp theo cả hai hướng trên mỗi lần đi qua danh sách.
Input:53421 Output:12345
Giải thích
Trong Cocktail, mảng sắp xếp sẽ bao gồm phần tử chưa được sắp xếp. Phân loại cocktail hoạt động theo cả hai hướng trên mỗi lần chuyển qua danh sách. Nó sắp xếp mảng bằng cách sử dụng sắp xếp bong bóng một lần tiến và lùi.
Ví dụ
#include <iostream> using namespace std; int main() { int arr[] = { 5, 3, 4, 2, 1 }; int m=5; int n, c; n=m; do { for (int i = 0; i < n - 1; i++) { if (arr[i] > arr[i + 1]) { arr[i] = arr[i] + arr[i + 1]; arr[i + 1] = arr[i] - arr[i + 1]; arr[i] = arr[i] - arr[i + 1]; } } n = n - 1; for (int i=m-1, c = 0; i >= c; i--) { if(arr[i] < arr[i - 1]) { arr[i] = arr[i] + arr[i - 1]; arr[i - 1] = arr[i] - arr[i - 1]; arr[i] = arr[i] - arr[i - 1]; } } c = c + 1; } while (n != 0 && c != 0); for (int i = 0; i < m; i++) { cout<< arr[i]<<"\t"; } }