Python中实现冒泡排序的函数
发布时间:2023-06-03 11:00:51
冒泡排序是一种基本的排序算法,其核心思想是重复地遍历要排序的数组,从 项开始,依次比较每一项与它后面的项,如果当前项大于后面的项,就交换它们的位置,直到数组中的所有项都满足顺序要求为止。冒泡排序的时间复杂度为O(n^2),空间复杂度为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 #返回排好序的数组
在上述代码中,首先取得数组的长度n,在外层循环中控制遍历的次数,内层循环比较当前项与它后面的项,如果当前项大于后面的项,就交换它们的位置。内层循环每次遍历的项数为n-i-1,因为在每一轮遍历中,已经将当前轮中最大的元素放在了数组的末尾,下一轮遍历时就不需要再比较这个元素了。最后返回排好序的数组。
在实际的应用中,冒泡排序可以用于对一些简单的数据类型进行排序,如整型、浮点型等。但对于较大规模的数据排序,其时间复杂度会较高,因此需要选择更高效的排序算法。
