冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
下面是用 Python 实现冒泡排序的代码,其中 order
参数指定升序或降序,如果为 "asc"
则为升序,如果为 "desc"
则为降序。
defbubble_sort(arr, order="asc"):
n = len(arr)
for i in range(n):
# 标记是否发生交换
swapped = False
for j in range(n - i - 1):
if order == "asc":
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
else:
if arr[j] < arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
# 如果没有发生交换,说明已经有序,可以退出循环
if not swapped:
break
return arr