📜  冒泡排序整数 (1)

📅  最后修改于: 2023-12-03 15:07:07.611000             🧑  作者: Mango

冒泡排序整数

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们的位置。重复执行以上步骤直到整个数列都有序为止。

实现

以下为冒泡排序整数的 Python 代码实现:

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

以上代码通过两个嵌套的循环遍历数组,每次比较相邻的两个数,如果前一个数比后一个数大,就交换它们的位置。外层循环控制排序次数,内层循环控制比较次数。

时间复杂度

冒泡排序的时间复杂度为 O(n^2),其中 n 是待排序数列的长度。因为每次排序都要遍历未排序部分的所有元素,因此总比较次数为:

n-1 + n-2 + ... + 1 = (n-1) * n / 2

即为 O(n^2)。

空间复杂度

冒泡排序的空间复杂度为 O(1),因为只需要常量级的额外空间来交换两个元素的位置。

稳定性

冒泡排序是稳定的排序算法,即相同元素的相对位置不会改变。

总结

冒泡排序虽然简单,但由于其时间复杂度较高,一般不被用于实际应用中,适用于数据量不大或者已经排好序的情况。其他常用排序算法如快速排序、归并排序等都具有更快的时间复杂度。