Задать вопрос
@aela_mate

Почему неправильно работает сортировка вставками из «Алгоритмов...» Кормена и др.?

Вот псевдокод из книги:
670f84f53d100788038796.png

Мой код на python:
for i in range(1,len(a)):
  key = a[i]
  j = i-1
  while j > 0 and a[j] > key:
    a[j+1] = a[j]
    j = j-1
  a[j+1] = key


Сортируется всё, кроме первого элемента. То есть было [5,2,4,6,1,3], стало [5, 1, 2, 3, 4, 6]. Почему так?
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
- while j > 0 and a[j] > key:
+ while j >= 0 and a[j] > key:
Ответ написан
Комментировать
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Потому что в книге нумерация элементов идет с 1, а в питоне - с 0.

Надо поменять условия в циклах for и while.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы