鸡尾酒排序
鸡尾酒排序,是一种改进后的冒泡排序,原理是要对排序的数组进行双向冒泡排序。
#include <iostream>
using namespace std;
void Cocktail(int *arr,int size){
int tail = size-1;
for (int i=0; i<tail; ) {
//小数上浮
for (int j=tail; j>i; --j) {
if (arr[j]<arr[j-1]) {
int temp =arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
++i;
//大数下沉
for (int j=i; j<tail; ++j) {
if (arr[j]>arr[j+1]) {
int temp =arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
tail--;
}
//打印数组
for (int i=0; i<size; i++) {
cout<<arr[i]<<' ';
}
}
int main()
{
int arr[] = {1,4,5,56,5,6,14,98,9,5,233,32,6,48,8,98,9,5,6,35,2,3};
Cocktail(arr, sizeof(arr)/sizeof(int));
return 0;
}