Я читаю несколько книг по Python, структурам данных, анализу и проектированию алгоритмов. Я хочу действительно понять все тонкости и нюансы кодирования и стать эффективным программистом. Сложно попросить книгу разъяснить, поэтому я задал вопрос на stackoverflow. Я действительно нахожу алгоритмы и рекурсию сложными... Я разместил ниже некоторый код (сортировка вставкой), который я пытаюсь понять, что именно происходит. Я понимаю, в общем, что должно произойти, но я не очень понимаю, как и почему.
Из попыток проанализировать куски кода на Python Idle я знаю, что:
key (holds variables) = 8, 2, 4, 9, 3, 6
и что:
i (holds the length) = 7 ( 1, 2, 3, 4, 5, 6, 7)
Я не знаю, почему 1 используется в первой строке: range(1, len(mylist)). Любая помощь будет принята с благодарностью.
mylist = [8, 2, 4, 9, 3, 6]
for j in range(1,len(mylist)):
key = mylist[j]
i = j
while i > 0 and mylist[i-1] > key:
mylist[i] = mylist[i - 1]
i -= 1
mylist[i] = key