@german_mel

Почему не работает сортировка выбором?

Нужно сделать сортировку выбором списка, написал следующий код:

a = [78, -32, 5, 39, 58, -5, -63, 57, 72, 9,
      53, -1, 63, -97, -21, -94, -47, 57, -8, 60, 
     -23, -72, -22, -79, 90, 96, -41, -71, -48, 84,
     89, -96, 41, -16, 94, -60, -64, -39, 60, -14,
     -62, -19, -3, 32, 98, 14, 43, 3, -56, 71, 
     -71, -67, 80, 27, 92, 92, -64, 0, -77, 2,
     -26, 41, 3, -31, 48, 39, 20, -30, 35, 32,
     -58, 2, 63, 64, 66, 62, 82, -62, 9, -52,
     35, -61, 87, 78, 93, -42, 87, -72, -10, -36, 
     61, -16, 59, 59, 22, -24, -67, 76, -94, 59]

n = len(a)
for i in range(n):
    x = a.index(min(a[i:]))
    a[i], a[x] = a[x], a[i]
    
print(a)

Но почему-то, когда i равно 3, находит минимальный элемент с индексом 2, хотя я же вроде указываю, что ищем минимум в срезе от i (т.е. от 3 в этой итерации), мне подсказали, что нужно исправить на
x = a.index(min(a[i:]), i).

И так действительно работает нормально, но я не могу понять, почему первый вариант работал не верно, может кто-нибудь растолковать максимально доходчиво?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы