我正在尝试使用冒泡排序对链接列表进行排序。但是,它仅一次遍历该列表,而没有对其进行完全排序。
listLen = GetLength(L)
t = L.head
for i in range(listLen - 1):
if t.data > t.next.data:
t.next.data, t.data = t.data, t.next.data
t = t.next
使用清单11,2,5,8,3,10,9,1我的输出是2 5 8 3 10 9 1 11。
答案 0 :(得分:0)
使用我的示例对此进行编码:
a = [16、19、11、15、10、12、14]
重复循环len(a)(个数)次
对于范围(len(a))中的j:
#initially swapped is false
swapped = False
i = 0
while i<len(a)-1:
#comparing the adjacent elements
if a[i]>a[i+1]:
#swapping
a[i],a[i+1] = a[i+1],a[i]
#Changing the value of swapped
swapped = True
i = i+1
#if swapped is false then the list is sorted
#we can stop the loop
if swapped == False:
break
打印(a)
答案 1 :(得分:0)
您需要两个循环来进行冒泡排序
listLen = GetLength(L)
for i in range(listLen - 1):
t = L.head
for n in range(listLen - 1):
if t.data > t.next.data:
t.next.data, t.data = t.data, t.next.data
t = t.next