#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;
}
常用排序算法——鸡尾酒排序(改进的冒泡排序)
最新推荐文章于 2022-08-22 20:13:42 发布