新的编码和算法。试试最简单的泡泡运动。但似乎最后一个数字没有被排序?我真的不明白为什么
原始列表如下-list = [4, 5, 3, 10, 17, 6, 2, 22, 76, 99, 18, 7]
但是我的输出看起来像这样-[99, 2, 3, 4, 5, 6, 7, 10, 17, 18, 22, 76]
由于某些原因,99没有被换到后面,我无法指出原因
list = [4, 5, 3, 10, 17, 6, 2, 22, 76, 99, 18, 7]
def bblSort(list):
for i in range(len(list)):
print(list[i])
for j in range(len(list) - 1):
if list[i] <list[j+1]:
list[i], list[j+1] = list[j+1], list[i]
print(list)
冒泡排序可以通过两个for循环或一个while循环和一个for循环来实现。这是一个使用while和for循环的实现,更容易理解
此函数使用内部for循环遍历列表,将每个对象与后面的对象进行比较,并在必要时交换这两个对象。外部while循环确保它在整个列表中一次又一次地重复for循环,直到不需要进一步交换为止
印刷品: [-34,0,2,4,5,10,12,15,23,32,43,90,98,140,554]
对于bubblesort,您需要对列表进行多次遍历,以确保它已排序。每次传递都保证将最大的数字移动到正在排序的列表部分的末尾。这意味着您不需要再次排序该位置,因此您只需要在下一次传递时排序到该位置
我不太懂Python,所以这是伪代码。它按升序对列表进行就地排序
每个过程都会对开始和
hi
之间的列表部分进行排序,每个过程的hi
减少一个为了获得额外的积分,如果一张通行证不能进行任何交换,可以考虑提前完成。在这种情况下,列表已按顺序排序
您只需要一个循环,因为冒泡排序比较相邻的值。试着用i做一个循环,然后比较list[i]和list[i+1](注意列表的末尾)
顺便说一句,最好不要用类型名调用变量,这里为变量“list”选择另一个名称
相关问题 更多 >
编程相关推荐