生成一个整型列表,通过函数将次序打乱,然后进行冒泡排序,并输出每一趟过程结果。
时间: 2024-10-06 15:04:50 浏览: 29
函数模板对数组冒泡排序
4星 · 用户满意度95%
可以创建一个Python函数来完成这个任务。首先,我们需要生成一个随机的整数列表,然后使用Fisher-Yates算法(也称为Knuth洗牌法)打乱顺序。接着,我们来进行冒泡排序并打印每一轮的结果。以下是具体的步骤:
```python
import random
def shuffle_and_sort(lst):
# 生成随机整数列表
original_lst = [i for i in range(1, len(lst) + 1)]
# 打乱列表顺序
def shuffle(lst):
n = len(lst)
for i in range(n - 1, 0, -1):
j = random.randint(0, i)
lst[i], lst[j] = lst[j], lst[i]
shuffle(original_lst)
print("Original List:", original_lst)
# 冒泡排序并打印每轮过程
def bubble_sort(lst):
n = len(lst)
for i in range(n):
# 每次遍历确定是否有交换发生,如果没有,则已经排序完成
swapped = False
for j in range(0, n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
swapped = True
print(f"Iteration {i+1}: {lst}")
bubble_sort(original_lst)
# 示例使用
shuffle_and_sort([5, 2, 8, 4, 9])
```
运行此代码会先打印原始随机排列的列表,然后逐步显示冒泡排序的过程直到完全排序。
阅读全文