(31)鸡尾酒排序

来源:互联网 发布:java swing 布局 编辑:程序博客网 时间:2024/04/29 18:54

一种改进的冒泡排序,原理是对要排序的数组进行双向冒泡,双向冒泡排序又称鸡尾酒排序。

原理是:大数向后排,小数向前排。

代码:

#include<iostream>using namespace std;void CockTail(int num[],int n) {int tail = n - 1;int i;for ( i = 0; i < tail;) {   //将最小的数排到前面for ( int j =tail; j > i; j--) {if (num[j] < num[j - 1]) {int temp = num[j];num[j] = num[j - 1];num[j - 1] = temp;}}i++;          //最小数已排好 向后+1for (int j = i; j <tail ; j++) {   //将最大的数排到后面if (num[j] > num[j + 1]) {int temp = num[j];num[j] = num[j + 1];num[j + 1] = temp;}}tail--;  //最大数已排好 向前移动}}void main(){int num[12] = { 10,6,2,33,15,12,23,76,1,54,22,9 };CockTail(num, 12);for (auto x : num) {cout << x << " ";}cout << endl;system("pause");}


0 0