#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;
}
常用排序算法——雞尾酒排序(改進的冒泡排序)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.