鸡尾酒排序Cocktail Sort (双向冒泡排序)
Posted izzwhf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鸡尾酒排序Cocktail Sort (双向冒泡排序)相关的知识,希望对你有一定的参考价值。
鸡尾酒排序
鸡尾酒排序思路,先从左边开始进行冒泡排序,第一趟冒泡排序完,最大值在的数组的最右端,然后进行第二趟排序,第二趟排序从右边开始排序,第二趟结束时,最小值在数组最左端,以此类推,每一趟排序完都能将一个在当前数组(不包括之前排序得到的最大或者最小的数)中最小或者最大的数放在对应的位置。
算法过程
代码实现
#include <iostream>
using namespace std;
void Swap(int array[], int i, int j)
int temp = array[i];
array[i] = array[j];
array[j] = temp;
void cocktailSort(int array[], int length)
if (array == nullptr || length <= 0)
return;
int left = 0;
int right = length - 1;
while (left < right)
//第一次 左边开始
for (int i = left; i < right; i++)
if (array[i] > array[i + 1])
Swap(array, i, i + 1); //左边大于右边,交换
//第二次 右边开始
right--;
for (int i = right; i > left; i--)
if (array[i - 1] > array[i])
Swap(array, i - 1, i); //左边大于右边, 交换
left++;
int main()
int arr[] = 5,9,8,7,6 ;
int length = sizeof(arr) / sizeof(int);
cocktailSort(arr, length);
for (int i = 0; i < length; i++)
cout << arr[i] << " ";
cout << endl;
以上是关于鸡尾酒排序Cocktail Sort (双向冒泡排序)的主要内容,如果未能解决你的问题,请参考以下文章