1. 程式人生 > >【演算法題】雙向氣泡排序

【演算法題】雙向氣泡排序

void func(int* array,int len)
{
    if (array == NULL || len<=1)
    {
        return;
    }
    int left = -1;
    int right = len;
    while (left<right)
    {
        left++;
        right--; 
        bool swapped = false;
        for (auto j = left; j < right;j++)
        {
            if
(array[j]>array[j+1]) { std::swap(array[j], array[j + 1]); swapped = true; } } if (!swapped) { return; } swapped = false; for (auto j = right; j > left;--j) { if
(array[j]<array[j-1]) { std::swap(array[j],array[j-1]); swapped = true; } } if (!swapped) { return; } } }