Bootstrap

冒泡排序(c语言)实现

冒泡排序

void BubbleSort(int *Array, int N) {
    int i, j;
    int tmp;
    for (i = 0; i < N - 1; i++) {
        for (j = 0; j < N - 1 - i; j++) {
            if (Array[j] > Array[j + 1]) {
                tmp = Array[j];
                Array[j] = Array[j + 1];
                Array[j + 1] = tmp;
            }
        }
    }
}

介绍:

冒泡排序也是一种交换排序,实现起来也比较简单,第一轮每两个相邻的数据进行比较,将大的数放在后面,一直交换到末尾,就将一个最大的数放在了最后一个;第二轮排除最后一个数,在将前面的数据相邻比较,又将一个最大的数放在了末尾(对于所有数据来说,它是次大的);如此重复n-1轮,我们就将顺序排好了。
时间复杂度: 第一轮比较次数n-1次,第二轮n-2次…第n-1轮1次
(n-1)+(n-2)+(n-3)+…+1 = 1/2(n-1)n = O(n^2).
注:本文章用于学习和理解,如有错误之处请指出和谅解,谢谢。

;