冒泡排序

来源:互联网 发布:linux svn 分支 编辑:程序博客网 时间:2024/06/03 14:48

冒泡排序效率非常低,效率还不如插入排序。数据量大时效率低,对于顺序颠倒的序列效率最低。

时间复杂度为n^2 

#include <stdio.h>

// 标准冒泡

void bubbleSort(int arr[], int size)
{
    int pos1 = 0, pos2 = 0; // 分别是外层循环和内层循环的下标
    for(pos1 = size-1; pos1 >= 1; --pos1)
    {
        for(pos2 = 0; pos2 <= pos1-1; ++pos2)
        {
            if(arr[pos2] > arr[pos1])
            {
                int temp = arr[pos2];
                arr[pos2] = arr[pos1];
                arr[pos1] = temp;
            }
        }
    }
}

int main()
{
    int arr[7] = {6,-1,-3,5,9,2,1};
    bubbleSort(arr, 7);

    int pos = 0;
    for(pos = 0; pos <= 6; ++pos)
    {
        printf("%d ", arr[pos]);
    }
    printf("\n");

    return 0;
}

0 0