def insertionSort(a):
for i in range(1, len(a)): #outer loop covering the range
value = a[i] #value = to list, which will compare items to the left
i = i - 1 #i goes lower than index to compare further to the left
while i >= 0 : #keep comparing till its at the beginning of the list
if value < a[i]: #if value is less than i
a[i+1] = a[i] # shift number in right i to slot i + 1
a[i] = value # shift value that was left into slot i
i = i - 1
else:
break
infile = open("file1.txt", "r")
a=[]
for aline in infile:
a = aline.split()
insertionSort(a)
print(a)
Это то, что находится в файле:Сортировка списка, считанного из файла?
7686850495948548545
Как получить функцию insertionSort()
работать над файлом?
Содержит ли файл все номера в одной строке? – trans1st0r
, когда вы выполняете 'a = aline.split()' он не сохраняет ссылку за пределами переменной 'a', поэтому следующая итерация в цикле for перекрывает ее со следующей строкой, поэтому в итоге вы вызываете только сортировку на ** последней строке файла. ** –
, если вы вместо этого сделали 'a.extend (aline.split())', вы расширили бы список всеми словами (или цифрами) в этой строке и в конечном итоге со всеми из них после цикла for. –