如何在Bubble Sort中使用0-50的随机生成数字实现排序
随机数列表生成与冒泡排序整合实现
首先修正你现有冒泡排序代码里的冗余问题:函数内部定义的data = [8, 45, 0, 11, 6]完全没必要,这个函数的核心是接收外部传入的数组array并排序,所以先把这行删掉。
接下来分两步实现你的需求:
1. 生成0-50范围内的随机数列表
Python的random模块可以轻松生成指定范围的随机整数,用列表推导式就能批量生成任意长度的随机数列表。比如要生成15个元素的列表,代码如下:
import random # 生成包含15个0-50随机整数的列表 random_list = [random.randint(0, 50) for _ in range(15)]
这里的range(15)可以改成你想要的列表长度,比如range(20)就是20个元素。
2. 修正后的冒泡排序+整合调用
把你原有的冒泡排序函数修正后,直接传入生成的随机列表即可完成排序。完整代码如下:
import random def bubbleSort(array): for i in range(len(array)): swapped = False # 遍历未排序的部分 for j in range(0, len(array) - i - 1): if array[j] > array[j + 1]: # 交换元素位置 temp = array[j] array[j] = array[j+1] array[j+1] = temp swapped = True # 如果一轮没交换,说明已经有序,提前终止 if not swapped: break # 生成随机数列表 random_list = [random.randint(0, 50) for _ in range(15)] print("排序前的随机列表:", random_list) # 调用冒泡排序 bubbleSort(random_list) print("排序后的列表:", random_list)
代码说明
- 移除了原函数中多余的
data定义,让函数只处理传入的参数数组,符合单一职责原则。 random.randint(0,50)会生成包含0和50在内的随机整数。- 冒泡排序中的
swapped标记是优化点:如果某一轮遍历没有发生任何交换,说明数组已经完全有序,可以提前结束排序,减少不必要的循环。
内容的提问来源于stack exchange,提问作者Полишук Макс
相关产品推荐
相关产品推荐

