Помогите Python
Надо после кода вырезать в любую переменную все эти числа и отсортировать их, но не через sorted.
n = int(input("Кол-во "))
a = ''
for i in range(n):
a = a + (input())
print(a)
Вырезать надо как текст, на каком то сайте видел a[1:2] где a это число, 1 и 2 это с какого по какое число включительно надо вырезать.
Пример входных данных:
n = 3
3
2
5
Вывод:
235
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
сортировка в лоб (сложность O(n^2))
n = int(input("Кол-во "))
arr = [int(input()) for _ in range(n)]
res = []
for i in range(n):
min_value = arr[0]
min_pos = 0
for j in range(1, len(arr)):
if min_value > arr[j]:
min_pos = j
min_value = arr[j]
res.append(min_value)
del arr[min_pos]
print(*res)
вырезать из строки числа можно так:
arr = list(map(int, text.split()))
Автор решения: Zhihar
→ Ссылка
уф, у меня вот так получилось в лоб без списков, без стандартной сортировки
# получить кол-во чисел
#n = int(input("Кол-во "))
# записать числа в строку
#text = ''
#for _ in range(n):
# text += input() + ' '
# для теста
n = 5
text = '11 3435 9 323 899 '
# отсортировать числа
res = ''
for i in range(n):
# найти минимальное число в строке
min_value = 0
min_pos_start = -1
min_pos_finish = -1
pos = 0
while pos < len(text):
# найти начало слова
for pos_start in range(pos, len(text)):
if text[pos_start] != ' ':
break
# найти конец слова
for pos_finish in range(pos_start + 1, len(text)):
if text[pos_finish] == ' ':
break
pos_finish = pos_finish + 1 if text[pos_finish] != ' ' else pos_finish
# преобразовать выделенное слово в число
try:
value = int(text[pos_start:pos_finish])
except:
break
# найти минимальное число в строке
if value < min_value or min_pos_start == -1:
min_pos_start = pos_start
min_pos_finish = pos_finish
min_value = value
# перейти дальше по строке
pos = pos_finish + 1
# добавить в результат найденное число
res += str(min_value) + ' '
# вырезать найденное число из строки
part1 = '' if min_pos_start == -1 else text[0:min_pos_start]
part2 = text[min_pos_finish:]
text = part1 + part2
# вывести результат
print(res)