#python #algorithm #min
#python #алгоритм #минимум
Вопрос:
Мой учитель хочет, чтобы я выполнил алгоритм сортировки в порядке возрастания, но используя минимальное число в списке и помещая его в начало. Я прочитал файл чисел, и пока у меня есть:
def findMin(ls, n):
m = 0
for i in range(1, n): #n is length
if ls[i]<ls[m]:
m = i
return m
def sortlist(ls,n):
if n == 1:
return
m = findMin(ls,n)
ls.insert(0,m)
ls.remove(m)
sortlist(ls, n)
Я перепробовал несколько методов и не могу заставить его работать. Я пытался поместить минимальное число в начало, а затем вычеркнуть его из списка, чтобы функция не учитывала его в длине. Я знаю, что если бы я сортировал по максимуму, я бы поставил n-1, но что мне поставить для минимума?
Ответ №1:
Из вашего описания я сделал вывод, что ваш учитель хочет, чтобы вы реализовали алгоритм сортировки по выбору. Возможно, вы захотите взглянуть на это.
В этом алгоритме вы меняете наименьшее число местами с текущей позицией. Изначально текущая позиция находится в начале списка, и она смещается при замене значений.
Ответ №2:
Это пузырьковая сортировка:
...
for i in range(0, n-1):
for j in range(i 1, n):
if ls[j] < ls[i]:
temp = ls[i]
ls[i] = ls[j]
ls[j] = temp
...