冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
下面是 Python 实现冒泡排序的代码:
python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 创建一个标志位,如果这一趟发生了交换,标志位就为 True, 否则为 False
flag = False
for j in range(0, n-i-1):
# 从前往后依次比较相邻的两个元素,如果前面的元素大于后面的元素就交换它们的位置
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
flag = True
# 如果这一趟没有发生交换,说明已经排好序了,可以提前退出循环
if not flag:
break
return arr
这个算法的时间复杂度是 O(n2),不适合对大规模数据进行排序。但是它的实现非常简单,适合作为初学者学习算法的入门案例。