С вашим кодом после каждой второй итерации результатом было следующее:
[0, 3, 77, 25, 87, 22, 12, 7, 2, 43]
[0, 2, 77, 25, 87, 22, 12, 7, 3, 43]
[0, 2, 3, 25, 87, 22, 12, 7, 77, 43]
[0, 2, 3, 7, 87, 22, 12, 25, 77, 43]
[0, 2, 3, 7, 12, 22, 87, 25, 77, 43]
[0, 2, 3, 7, 12, 22, 87, 25, 77, 43]
[0, 2, 3, 7, 12, 22, 25, 87, 77, 43]
[0, 2, 3, 7, 12, 22, 25, 77, 87, 43]
[0, 2, 3, 7, 12, 22, 25, 77, 87, 43]
0 2 3 7 12 22 25 77 87 43
Как вы можете ясно видеть, он игнорирует последний элемент!
xrange в основном генерирует от начала до конца-1 (xrange(начало,конец))!
Внутренний цикл должен иметь диапазон от i+1 до n, а не n-1
def sel_sort(list):
for i in xrange(n-2):
imin=i
#here range is i+1 to n
for j in xrange(i+1,n):
if list[j]<list[imin]:
imin=j
list[imin],list[i]=list[i],list[imin]
print list
Пример,
Вход:
x=[7, 3, 77, 25, 87, 22, 12, 0, 2, 43]
Выход:
0 2 3 7 12 22 25 43 77 87
Использование #!/usr/bin в начале этой программы можно легко понять по вики-ссылке, опубликованной в комментариях. Это дало бы четкое представление о том же самом!
Надеюсь, поможет!
person
Keerthana Prabhakaran
schedule
14.03.2017
#!/usr/bin/env python
. Это хеш-банг или шебанг. Хотя алгоритм глючит - person slezica   schedule 14.03.2017list
в качестве имени переменной, так как это функция Python. - person Martin Evans   schedule 14.03.2017