源码

admin 47 0

Python 实现冒泡排序算法的源代码

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

下面是 Python 实现冒泡排序算法的源代码:

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

在这个实现中,我们定义了一个名为 `bubble_sort` 的函数,它接受一个列表 `arr` 作为参数,我们首先获取列表的长度,并使用嵌套的 for 循环遍历列表中的每个元素,在内部循环中,我们比较当前元素和下一个元素的值,如果当前元素比下一个元素大,我们就交换它们的位置,通过这种方式,较大的元素会像“泡泡”一样浮到列表的末尾,我们在外部循环中重复这个过程,直到整个列表都已经排好序,我们返回排好序的列表。

下面是一个示例,演示如何使用这个函数对列表进行排序:

arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("排序后的数组:")
for i in range(len(sorted_arr)):
    print ("%d" %sorted_arr[i]),

输出结果应该是:

排序后的数组:
11 12 22 25 34 64 90

这个例子中,我们定义了一个包含7个整数的列表 `arr`,并将其传递给 `bubble_sort` 函数,函数返回一个排好序的新列表 `sorted_arr`,我们使用 for 循环打印出这个列表中的每个元素,输出结果显示了排序后的数组。