2015-01-30 2 views
-2

Я пытаюсь выполнить вызов сортировки пузыря на python, он включает как сортировку, так и чтение файла. это оценочная доска для игры, баллы хранятся в txt-файле, программа должна делать следующие вещи: введите имена и баллы (по 3 длинных) имена сортировок и оценки сохраните список, так что я могу откройте его после его закрытия и отредактируйте его удалите имя и оценку замените оценку на имяBubble sort and file r/w task

Я делаю это пополам, как история. пара по парам - это параграф. Я немного застрял в последних двух очках. я мог бы с этим помочь. я нахожусь на уровне GCSE, (OCR)

это моя рода программа

def BubbleSort2(lst): 
    lst = list(lst) 
    swapped = True 
    while swapped: 
     swapped = False 
     for i in range(len(lst)-1): 
      if lst[i] < lst[i+1]: 
       lst[i], lst[i+1] = lst[i+1], lst[i] 
       swapped = True 
    return lst 
+0

"Тот, кто "уровень GCSE (OCR)". Кольца любые колокола, пусть первым бросит в нее камень" –

+0

А именно, какие конкретно вы застряли? –

ответ

0

изменение, если условие if lst[i] > lst[i+1]: в вашем коде. При сортировке пузырьков необходимо проверить i-й элемент с элементом i+1, и если элемент i больше, чем i+1 элемент, то элемент обмена.

код:

def bubbleSort(input, n): 
    """ 
     Bubble Sort. 
     Input: Input List and Number of elemnt in list 
     Output: Sorted List 
    """ 
    i = 1 
    while i<n: # Run n-1 times 
     j = 0 
     tmp = n-i 
     while j<tmp:       
      if input[j]>input[j+1]: # Exchange values 
       tmp1 = input[j] 
       input[j] = input[j+1] 
       input[j+1] = tmp1 
      j += 1 
     print "i=%d input:-%s"%(i, input) 
     i += 1 

    return list(input) 

input = [6,5,4,3,2,1] 
no = len(input) 

print "\n", bubbleSort(input, no) 

выход:

$ python test.py 

i=1 input:-[5, 4, 3, 2, 1, 6] 
i=2 input:-[4, 3, 2, 1, 5, 6] 
i=3 input:-[3, 2, 1, 4, 5, 6] 
i=4 input:-[2, 1, 3, 4, 5, 6] 
i=5 input:-[1, 2, 3, 4, 5, 6] 
[1, 2, 3, 4, 5, 6]