程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 雞尾酒排序(改進的冒泡排序)

雞尾酒排序(改進的冒泡排序)

編輯:C++入門知識

經典排序算法-雞尾酒排序CocktailSort
   雞尾酒排序(改進的冒泡排序),原理是對要排序的數組進行雙向冒泡排序,雙向冒泡排序又稱為雞尾酒排序。
其示例代碼如下: #include <IOSTREAM>
using namespace std;
/**/////////雞尾酒排序/雙向冒泡排序(改進的冒泡排序)
void CocktailSort(int *a,int nsize)
{
    int tail=nsize-1;
    for (int i=0;i<tail;)
    {
        for (int j=tail;j>i;--j) //第一輪,先將最小的數據排到前面
        {
            if (a[j]<a[j-1])
            {
                int temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;
            }
        }
        ++i;                    //原來i處數據已排好序,加1

        for (j=i;j<tail;++j)    //第二輪,將最大的數據排到後面
        {
            if (a[j]>a[j+1])
            {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }   
        }

        tail--;                 //原tail處數據也已排好序,將其減1
    }
}
void OutPut(int *b,int nLength)
{
    for (int i=0;i<nLength;i++)
    {
        cout<<b[i]<<'\t';
    }
    cout<<endl;
}
int main()
{
    int nData[]={1,4,2,5,67,86,24,63,676,23,1,3,2,34};

    CocktailSort(nData,sizeof(nData)/sizeof(nData[0]));
    OutPut(nData,sizeof(nData)/sizeof(nData[0]));
    return 1;
}

 


摘自 CodeBeauty

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved