python冒泡排序的题目
时间: 2025-01-05 21:34:10 浏览: 6
### Python 实现冒泡排序
#### 冒泡排序简介
冒泡排序是一种简单的排序算法,通过重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这个过程会持续进行直到没有需要交换的元素为止。
对于已排序数组的最佳情况时间复杂度为 O(n)[^1];最坏的情况下(逆序),其时间复杂度达到 O(n²)[^3]。
#### 示例代码实现
下面是一个基于 Python 的冒泡排序函数:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
swapped = 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]
swapped = True
# 如果内层循环中未发生任何交换,则说明列表已经是有序状态
if not swapped:
break
return arr
# 测试数据集
test_array_ascending = [1, 2, 3, 4, 5]
print(f"原始升序序列: {test_array_ascending}")
bubble_sort(test_array_ascending)
print(f"经过冒泡排序后的结果: {test_array_ascending}")
test_array_descending = [5, 4, 3, 2, 1]
print("\n\n")
print(f"原始降序序列: {test_array_descending}")
bubble_sort(test_array_descending)
print(f"经过冒泡排序后的结果: {test_array_descending}")
```
这段程序展示了如何使用冒泡排序来处理两种极端条件下的输入:一个是完全正向排列的数据集 `[1, 2, 3, 4, 5]` ,另一个则是反向排列的数据集 `[5, 4, 3, 2, 1]` 。当遇到已经部分或全部排好的序列时,优化过的版本能够提前终止不必要的迭代操作。
阅读全文