反向冒泡排序

#include
#include

void TraversalArray(const int array[], int len)
{
    assert(array != NULL);
    assert(len >= 0);

    unsigned int index = -1;

    for(index = 0; index < len; index++)
    {
        printf("%3d", array[index]);
    }

    printf("\n");
}

void BubbleSort(int array[], int len)
{
    int flag = 1;
    int i = 0, j = 0;

    for(i = 0; i < len-1; i++)
    {
        for(j=i+1; j         {
            if(array[j] < array[i])
            {
                array[i] = array[i] ^ array[j];/*两个数互换*/
                array[j] = array[i] ^ array[j];
                array[i] = array[i] ^ array[j];

                flag = 0;
            }
        }
        
        if(flag)
        {
            break;
        }
    }
}

int main(void)
{
    int array[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};

    TraversalArray(array, sizeof(array)/sizeof(array[0]));
    
    BubbleSort(array, sizeof(array)/sizeof(array[0]));
    
    TraversalArray(array, sizeof(array)/sizeof(array[0]));

    return    0;
}

你可能感兴趣的:(数据结构与算法)