欢迎访问宙启技术站
智能推送

如何在Python中使用函数来实现冒泡排序算法?

发布时间:2023-08-01 07:41:13

冒泡排序是一种简单直观的排序算法,它通过相邻元素的比较和交换来排序。下面是使用函数实现冒泡排序算法的Python代码:

def bubble_sort(arr):
    n = len(arr)
    
    # 遍历所有数组元素
    for i in range(n):
        
        # 最后i个元素已经排好序,不需要再比较
        for j in range(0, n-i-1):
            
            # 如果当前元素大于下一个元素,则交换它们
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

上述代码中,bubble_sort 函数接受一个数组作为参数,将对该数组进行冒泡排序。函数 行获取数组的长度,用于后续的遍历操作。

接下来使用两个嵌套的循环进行排序。外部的循环控制排序的轮数,内部的循环用于比较和交换相邻元素。

在内部循环中,我们将当前元素和下一个元素进行比较。如果当前元素大于下一个元素,则交换它们的位置,以确保较大的元素向右边冒泡。

通过这样的遍历,每一轮冒泡操作将最大的元素“气泡”到最右边,因此,经过 n 轮的排序,整个数组就会按照升序排列。

下面是一个示例,展示如何使用bubble_sort函数对一个数组进行排序:

arr = [64, 34, 25, 12, 22, 11, 90]

print("排序前的数组:", arr)

bubble_sort(arr)

print("排序后的数组:", arr)

运行上述代码,将输出以下结果:

排序前的数组: [64, 34, 25, 12, 22, 11, 90]
排序后的数组: [11, 12, 22, 25, 34, 64, 90]

从输出结果可以看出,排序后的数组已经按照升序排列了。

冒泡排序的时间复杂度为 O(n^2),在处理大规模数据时,效率相对较低。但它的实现简单直观,对于小规模数据排序还是可以使用的。