1. 设计冒泡排序算法,输出每一趟的排序结果。并用相关数据进行测试。
时间: 2023-07-15 12:10:27 浏览: 132
冒泡排序是一种简单的排序算法,其基本思想是通过相邻元素之间的比较和交换,将较大的元素逐次“浮”到数列的顶端,实现排序。
以下是冒泡排序的实现代码:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 标记本次循环是否发生了交换
swapped = False
for j in range(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
print("第{}趟排序结果:{}".format(i+1, arr))
return arr
```
在每一趟排序结束后,输出当前的排序结果。如果在某一趟排序中没有进行任何交换,则说明数组已经排好序,可以提前结束排序过程。
下面是一个简单的测试代码,生成一个随机数组,使用冒泡排序进行排序并输出每一趟的排序结果:
```python
import random
# 生成随机数组
arr = [random.randint(1, 100) for _ in range(10)]
print("原始数组:", arr)
# 使用冒泡排序进行排序
sorted_arr = bubble_sort(arr)
print("排序结果:", sorted_arr)
```
输出结果如下:
```
原始数组: [77, 41, 1, 66, 54, 79, 12, 57, 33, 38]
第1趟排序结果:[41, 1, 66, 54, 77, 12, 57, 33, 38, 79]
第2趟排序结果:[1, 41, 54, 66, 12, 57, 33, 38, 77, 79]
第3趟排序结果:[1, 41, 54, 12, 57, 33, 38, 66, 77, 79]
第4趟排序结果:[1, 41, 12, 54, 33, 38, 57, 66, 77, 79]
第5趟排序结果:[1, 12, 41, 33, 38, 54, 57, 66, 77, 79]
第6趟排序结果:[1, 12, 33, 38, 41, 54, 57, 66, 77, 79]
排序结果: [1, 12, 33, 38, 41, 54, 57, 66, 77, 79]
```
阅读全文