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

如何修改冒泡排序Python代码实现小元素左移?

调整冒泡排序实现将较小元素移至左侧

原代码通过从左到右相邻比较,把每轮最大的元素逐步“冒泡”到列表右侧。要改成将较小元素移至左侧,只需调整内层循环的遍历方向和比较逻辑,具体修改如下:

修改后的代码

from random import randint

lst = [randint(0,100) for i in range(5)]
print("排序前:", lst)
# 外层循环控制排序轮数,每轮确定一个左侧的最小元素
for i in range(len(lst)-1):
    # 内层循环从列表末尾往前遍历,直到已排序区域的边界i
    for j in range(len(lst)-1, i, -1):
        # 若当前元素比左侧元素小,交换位置让小元素左移
        if lst[j] < lst[j-1]:
            lst[j], lst[j-1] = lst[j-1], lst[j]
print("排序后:", lst)

关键修改说明

  • 内层循环方向:从列表末尾(len(lst)-1)递减遍历到i,覆盖未排序的右侧区域,这样能把小元素逐步往左推送
  • 比较逻辑调整:将原条件lst[j] > lst[j+1]改为lst[j] < lst[j-1],触发交换的条件变成“当前元素比左侧元素小”,确保小元素左移
  • 排序效果:每轮外层循环结束后,第i个位置会被未排序区域的最小元素占据,最终实现列表从小到大排序

内容的提问来源于stack exchange,提问作者Mykyta Sorokin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:57:09