使用Python函数实现排序算法-冒泡排序
发布时间:2023-06-23 14:24:53
冒泡排序是一种简单的排序算法,它通过不断地比较相邻两个元素并交换它们的位置,从而将较大的元素“浮”到数组的末尾,较小的元素则“沉”到数组的开始。在 次遍历数组时,最大的元素会被移动到数组的末尾;在第二次遍历数组时,次大的元素会被移动到末尾的前一位;以此类推,直到整个数组有序为止。
下面是Python实现冒泡排序的代码:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(n-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
这个函数接收一个列表作为参数,返回排序后的列表。在函数内部,首先获取列表的长度n。外层循环从0到n-1遍历列表,内层循环从0到n-2遍历相邻的元素,如果前面的元素比后面的元素大,就交换它们的位置。这样一轮遍历后,最大的元素已经被移动到了列表的末尾。
接下来,再进行n-1轮遍历,每轮遍历将次大的元素移动到末尾的前一位。这个过程通过将内层循环的上限从n-1逐步减少到1实现。
最终,当内层循环结束后,整个列表已经完成了排序。排序算法的时间复杂度为O(n^2),因为需要进行n^2次比较和交换。
下面是一个使用冒泡排序函数的例子:
arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_arr = bubble_sort(arr) print(sorted_arr)
这段代码使用冒泡排序函数对一个无序列表进行排序,并将排序后的列表打印出来。结果如下:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
可以看到,使用冒泡排序函数对列表进行排序非常简单。在实际应用中,可能会使用更快速和高效的排序算法来处理大型数据集,但是了解基本的排序算法对于理解编程和算法的概念非常重要。
