python冒泡排序代码
冒泡排序是一种简单的排序算法,它会多次遍历待排序的元素,比较相邻的两个元素,并在必要时交换它们的位置。这个过程持续重复,直到整个数组排序完成。
pythondef bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后 i 个元素已经排好序,不需要再比较
for j in range(0, n - i - 1):
# 交换元素,使较大的元素浮动到右侧
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
# 示例使用
if __name__ == "__main__":
# 待排序的数组
my_array = [64, 34, 25, 12, 22, 11, 90]
# 调用冒泡排序函数
bubble_sort(my_array)
# 打印排序后的数组
print("排序后的数组:", my_array)
这个示例中,bubble_sort
函数接受一个数组作为参数,并对其进行冒泡排序。在示例中,数组 [64, 34, 25, 12, 22, 11, 90]
经过排序后,打印出的结果为 [11, 12, 22, 25, 34, 64, 90]
。
pythondef bubble_sort(arr, reverse=False):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后 i 个元素已经排好序,不需要再比较
for j in range(0, n - i - 1):
# 根据 reverse 参数判断是升序还是降序
if reverse:
if arr[j] < arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
else:
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
# 示例使用
if __name__ == "__main__":
# 待排序的数组
my_array = [64, 34, 25, 12, 22, 11, 90]
# 调用冒泡排序函数
bubble_sort(my_array)
print("升序排序后的数组:", my_array)
# 调用冒泡排序函数
bubble_sort(my_array, reverse=True)
print("降序排序后的数组:", my_array)
在这个例子中,bubble_sort
函数新增了一个参数 reverse
,默认为 False
,表示升序排列。如果设置为 True
,则表示降序排列。在排序后,打印出升序和降序排列的结果。