📜  气泡排序(1)

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

气泡排序

气泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历待排序数组,每次比较相邻的两个元素,如果它们的顺序错误就交换它们的位置,直到遍历完整个数组。通过多次遍历,把最大的元素逐渐放在后面,直到整个数组都有序。

算法分析
  • 算法的时间复杂度为O(n^2),其中n为待排序数组的长度。
  • 空间复杂度为O(1),因为只涉及相邻的元素交换。
  • 算法是稳定的,即相同元素的顺序不会发生变化。
算法实现

以升序排序为例,以下是使用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

if __name__ == '__main__':
    arr = [64, 34, 25, 12, 22, 11, 90]
    print(bubble_sort(arr))

以上代码中,bubble_sort函数接收一个待排序的数组,循环嵌套两次开始对数组进行遍历,比较相邻两个元素,如果前一个元素大于后一个元素,就交换它们的位置。外层循环的次数为数组的长度,内层循环的次数则依次递减。最终返回排序完成的数组。

总结

虽然气泡排序算法比较简单,但其时间复杂度较高,不适合对大规模数据进行排序。在实际应用中,可以结合其他算法使用,例如快速排序和归并排序等。