2017-02-06 21 views
-2
def insertion_sort(list): 
    for index in range(1,len(list)): 
     value=list[index] 
     i=index-1 
     while i>=0: 
      if value<list[1]: 
       list[i+1]=list[i] # shift no in slot i to i+1 
       list[i]=value # shift value left into slot i 
       i=i-1 
      else: 
       break 
k =input("enter no of elements") 
print(insertion_sort(k)) 
+1

Ваша функция не возвращает ничего, так что я не уверен, что вы ожидали быть распечатаны. – csmckelvey

+0

Спасибо, много приятель! –

ответ

0

Вы забыли оператор возврата, в котором вы управляете неправильным индексом.

def insertion_sort(list): 
    for index in range(1,len(list)): 
     value=list[index] 
     i=index-1 
     while i>=0: 
      if value<list[i]: # careful on here 
       list[i+1]=list[i] # shift no in slot i to i+1 
       list[i]=value # shift value left into slot i 
       i=i-1 
      else: 
       break 
    return list 

values = raw_input("enter values:") # 6 2 4 7 2 1 8 
values = [ int(x) for x in values.split(' ') ] # then use this values array in insertion_sort function 
print(insertion_sort(values)) 

Выведется 1,2,2,4,6,7,8

+0

Большое спасибо за помощь. Я могу работать таким образом. Но я хочу ввести массив как входной, а не жесткий код. Как я могу это сделать ? –

+0

Защиту insertion_sort (список): для индекса в диапазоне (1, Len (список)): значение = Список [индекс] я = индекс-1 в то время как я> = 0: , если значение <список [I]: список [+ 1] = список [I] # сдвига нет в слоте я к + 1 список [I] = значение значение # сдвига не осталось в слот я I = I-1 остальное: перерыв возвращение (список) arr = [] elem = int (input ("insert how many elements you want:")) для i in range (0, elem): arr.append (int (input ("Enter next no : "))) печать (обр.) print (insertion_sort (arr)) ВИЛЛЫ берут интернет-помощь для ввода! –

+0

Вы можете получать значения с помощью raw_input как строки, разделяющей каждое число с одним пустым символом и со списком, которые преобразуют их в массив int. –

 Смежные вопросы

  • Нет связанных вопросов^_^