You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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,提问作者Полишук Макс

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 07:45:32