zoukankan      html  css  js  c++  java
  • 鸡尾酒排序/双向冒泡排序

    算法:

    1、依次比较相邻的两个数,将小数放在前面,大数放在后面;

    2、第一趟可得到:将最大数放到最后一位。

    3、第二趟可得到:将第二大的数放到倒数第二位。

    4、如此下去,重复以上过程,直至最终完成排序。

    01.void CocktailSort(int *a,int nsize)  
    02.{  
    03.    int tail=nsize-1;  
    04.    for (int i=0;i<tail;)  
    05.    {  
    06.        for (int j=tail;j>i;--j) //第一轮,先将最小的数据排到前面  
    07.        {  
    08.            if (a[j]<a[j-1])  
    09.            {  
    10.                int temp=a[j];  
    11.                a[j]=a[j-1];  
    12.                a[j-1]=temp;  
    13.            }  
    14.        }  
    15.        ++i;                    //原来i处数据已排好序,加1  
    16.        for (j=i;j<tail;++j)    //第二轮,将最大的数据排到后面  
    17.        {  
    18.            if (a[j]>a[j+1])  
    19.            {  
    20.                int temp=a[j];  
    21.                a[j]=a[j+1];  
    22.                a[j+1]=temp;  
    23.            }      
    24.        }  
    25.        tail--;                 //原tail处数据也已排好序,将其减1  
    26.    }  
    27.}  
  • 相关阅读:
    Ceph相关
    Redis学习
    docker mysql
    WebSocket学习与使用
    nginx学习与使用
    python学习小记
    基数计数——HyperLogLog
    Swagger使用小记
    理解Java枚举类型
    Jenkins使用
  • 原文地址:https://www.cnblogs.com/yl-saber/p/6933496.html
Copyright © 2011-2022 走看看