/ 350
添加表情
遵守中华人民共和国的各项道德法规,承担因您的行为而导致的法律责任,
本站有权保留或删除有争议评论。 参与本评论即表明您已经阅读并接受上述条款。
全部评论 (共 7 条)
学习达人
QQdudyl6xjd 展开
def bubble_sort(arr):
for i in range(len(arr)-1):
swapped = False
for j in range(len(arr) - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
if not swapped:
break
2026年01月02日 09:54
0 回复
学习达人
markfz06 展开
内循环j,可以取for j in range(0, n-i-1),这样更好。
2024年09月14日 15:46
1 回复
学习达人
cnaniq2004 展开
def px(ll):
for i in range(len(ll)-1):
for j in range(1+i,len(ll)):
if ll[j] < ll[i]:
print(i,j,ll[i],ll[j],ll)
li = ll[i]
ll[i] = ll[j]
ll[j] = li
ll1 = [10,9,8,5,7,4,1,3,2,6]
px(ll1)
print(ll1)
2024年01月11日 09:16
0 回复
u714221584 展开
def bubble_sort(list):
n = len(list)
for i in range(n):
flag = False
for j in range(n-1-i):
if list[j]>list[j+1]:
flag = True
list[j],list[j+1]=list[j+1],list[j]
if not flag:
break
2022年07月06日 12:05
0 回复
天青拂晓 展开
for i in range(n-1): , for j in range(n-1-i): ,上面已经排好的不用再排了。
2022年06月29日 20:50
0 回复
彼岸花渡彼岸魂 展开
@ 天青拂晓 老师说的是在第一次for循环中定义一个比如x=0的控制变量,在第二层for循环的if语句中来让x=1,在第一次的循环语句最后再判断这个x如果等于1,就代表执行过第二层的if语句放生过位置交换,x等于0就代表没有发生位置交换整个列表也不需要交换了,跳出整个循环。这样就不用循环那么多次。
2022年11月21日 23:09
@TA
T-g0vk7lcin 讲师 展开
@ 天青拂晓 对的对的,厉害哈。出了这个之外,还有一个优化的点,提示一下:如果一趟循环过程中没有发生过交换,是不是说明这趟所有的数字都是有序的了,后面就不用再排序了。可以试试哦[赞]
2022年06月29日 22:02
@TA
学习达人
行而不辍 展开
老师,我觉得排序轮次应该是n = len(li)-1,最后一轮就剩一个元素,不会再比较交换位置了啊?
2022年06月25日 09:58
0 回复
wenyu1216 展开
@ 行而不辍 我试了,为啥最后一个没排序呢
2023年11月02日 18:58
@TA
T-g0vk7lcin 讲师 展开
嗯嗯,这是可以优化的点哈;除了你说的这点之外,关于内层循环j也可以优化的,你可以再看看哦,加油!!!
2022年06月25日 10:45
@TA
我的成功之路 更多
V
特惠充值
联系客服
APP下载
官方微信
返回顶部