Im пытается сделать двоюродный пузырь сортировать. на нечетных итерациях он пузырится и сортируется вправо, даже при итерациях он пузырится и сортируется влево.Почему я получаю IndexError: индекс индекса вне диапазона в этом коде?
def main():
myList = [10,9,8,7,6,5,4,3,2,1]
lengthOfList = len(myList)
firstThresh = 0
lastThresh = lengthOfList
oddPass = True
while firstThresh <= lastThresh:
if oddPass == True:
for index in myList[firstThresh:lastThresh]:
if myList[index] > myList[index+1]: <==================
temp = myList[index]
myList[index] = myList[index+1]
myList[index+1] = temp
print(myList)
oddPass = False
lastThresh -= 1
else:
for index in reversed(myList[firstThresh:lastThresh]):
if myList[index] < myList[index-1]:
temp = myList[index]
myList[index] = myList[index-1]
myList[index+1] = temp
print(myList)
oddPass = False
firstThresh += 1
main()
Ошибка: строка 22, в bubbleSort2Way если MyList [индекс]> MyList [индекс + 1]: IndexError: список индексов вне диапазона
Я положил стрелку, где проблема , Я новичок в программировании, поэтому, если его очевидно, мне жаль! Любая помощь будет замечательной!
Спасибо большое! Тем не менее, он работал, как только 10 попадает вправо, он дает ту же ошибку на том же месте. Вы знаете, почему это так? Визуализировано: [9, 10, 8, 7, 6, 5, 4, 3, 2, 1] [9, 8, 10, 7, 6, 5, 4, 3, 2, 1] [9, 8 , 7, 10, 6, 5, 4, 3, 2, 1] [9, 8, 7, 6, 10, 5, 4, 3, 2, 1] [9, 8, 7, 6, 5 , 10, 4, 3, 2, 1] [9, 8, 7, 6, 5, 4, 10, 3, 2, 1] [9, 8, 7, 6, 5, 4, 3, 10 , 2, 1] [9, 8, 7, 6, 5, 4, 3, 2, 10, 1] [9, 8, 7, 6, 5, 4, 3, 2, 1, 10] –
Вы также изменили эту строку 'для индекса в обратном порядке (myList [firstThresh: lastThresh]):' использовать функцию перечисления? 'для индекса, значение в перечислении (reverseed (myList [firstThresh: lastThresh])):' –
Добро пожаловать! Не беспокойтесь. У всех нас есть плохие ночи. : P Если бы это ответили на ваш вопрос, тогда, пожалуйста, распространяйте любовь, приняв ее как ответ. –