AKever

导航

C语言 鸡尾酒排序(双向冒泡)

C语言 鸡尾酒排序(双向冒泡)

===============================

 

1.代码

void swap(int &a, int &b) //引用类型方式
{
    int temp; //辅助变量
    temp = a;
    a = b;
    b = temp;    
}

void bubble_sort(int[] a)
{
    int n = a.length;
    bool flag = true;
    int left = 0;
    int right = n-1;
    int index;

    for(int i=0;i<n-1;i++)
    {
        flag = true;
        index = right;

        for(int j=left;j<index;j++)
        {
            if(a[j]>a[j+1])
            {
                swap(a[j], a[j+1]);
                flag = false;
                right = j;
            }
        }
        if(flag)
            break;
        
        flag = true;
        index = left;

        for(int j=right-1;j>index;j--)
        {
            if(a[j-1]>a[j])
            {
                swap(a[j], a[j-1]);
                flag = false;
                left = j;
            }
        }
        if(flag)
            break;
    }
}

 

posted on 2017-04-09 11:08  AKever  阅读(356)  评论(0)    收藏  举报