Я проходил процедуру вставки Sort algo в CLRS. Я не уверен, что право реализация -CLRS Insertion Sort Implmentation
Осуществления 1:
def Insertion_sort():
list = [3,5,1,7,2,4]
for j in xrange(1,len(list)):
i = j-1
while i>=0 and list[i] > list[j]:
swap(list, i, j)
j = i
i = i-1
реализация 2:
def Insertion_sort2():
list = [3,5,1,7,2,4]
for j in range(1,len(list)):
i = j-1;
while i>=0 and list[i]>list[j]:
i = i-1;
swap(list, i+1, j)
Благодаря
Вы их пробовали? (И где вы видите 'swap' в алгоритме CLRS?) – rici
Оба они работают для меня. – user3813674
@ user3886450: Для ясности, чтобы функция сортировки работала, она должна работать на всех входах. Попробуйте второй вариант на разных префиксах '[3, 5, 1, 7, 2, 4]' (и, если хотите, измените '4' на' 6'), и вы увидите, что факт что это привело к тому, что отсортированный список в этом конкретном случае был просто случайным. (Или, возможно, inopportune, поскольку результат заключается в том, чтобы скрыть очевидную ошибку.) – rici