Bubble-sort Issue n Linked List - PullRequest
       38

Bubble-sort Issue n Linked List

0 голосов
/ 28 июня 2019

Я пытаюсь отсортировать связанный список с помощью пузырьковой сортировки.Однако, он просматривает список только один раз, не сортируя его полностью.

    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 91 11.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Вам нужно две петли для сортировки пузырьков

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
0 голосов
/ 28 июня 2019

Давайте закодируем это на моем примере:

a = [16, 19, 11, 15, 10, 12, 14]

повторяющийся цикл len (a) (количество элементов) количество раз

для j в диапазоне (len (a)):

#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

печать (а)

...