python实现用冒泡法对 n 个元素进行排序,参数中指定升序或降序
时间: 2023-01-31 17:08:21 浏览: 141
冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
下面是用 Python 实现冒泡排序的代码,其中 `order` 参数指定升序或降序,如果为 `"asc"` 则为升序,如果为 `"desc"` 则为降序。
```
def bubble_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
```
示例用法:
```
# 升序排序
print(bubble_sort([5, 2, 3, 1, 4])) # [1, 2, 3, 4, 5]
# 降序排序
print(bubble_sort([5, 2, 3, 1, 4], "desc")) # [5, 4, 3, 2, 1]
```
阅读全文