冒泡排序问题n链表

时间:2019-06-28 03:39:53

标签: python linked-list bubble-sort

我正在尝试使用冒泡排序对链接列表进行排序。但是,它仅一次遍历该列表,而没有对其进行完全排序。

    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。

2 个答案:

答案 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