常用排序算法——鸡尾酒排序(改进的冒泡排序)

来源:互联网 发布:c语言小明摘苹果 编辑:程序博客网 时间:2024/05/16 17:02
#include <iostream>using namespace std;template<class T>void cocktail_sort(T *arr, int len){    T tmp;    int tail = len - 1;    for(int i = 0; i < tail; )    {        //小的排到前面        for(int j = tail; j > i; -- j)        {            if(arr[j] < arr[j - 1])            {                tmp = arr[j];                arr[j] = arr[j - 1];                arr[j - 1] = tmp;            }        }        ++ i;        //大的排到后面        for(int j = i; j < tail; ++ j)        {            if(arr[j] > arr[j + 1])            {                tmp = arr[j];                arr[j] = arr[j + 1];                arr[j + 1] = tmp;            }        }        tail --;    }}int main(){    int size;    cin >> size;    int *arr = new int[size];    for(int i = 0; i < size; ++ i)        cin >> *(arr+i);    cocktail_sort(arr, size);    for(int i = 0; i < size; ++ i)        cout << *(arr + i) << " ";    cout << endl;}
0 0