Python прога пж помогите
1)
В этой задаче вам нужно реализовать сортировку выбором.
Входные данные
На вход в одной строке подается список натуральных чисел.
Выходные данные
Выводите список каждый раз на новой строке, после каждой операции, в которой числа меняются местами.
Sample Input:
5 4 5 3 3 1 2
Sample Output:
2 4 5 3 3 1 5
2 4 1 3 3 5 5
2 3 1 3 4 5 5
2 3 1 3 4 5 5
2 1 3 3 4 5 5
1 2 3 3 4 5 5
Напишите программу. Тестируется через stdin → stdout
2)
Даны два числа
�
n и
�
k. Необходимо вывести перестановку из
�
n чисел (
�
n чисел от 1 до
�
n без повторений) такую, чтобы сортировка пузырьком по возрастанию на соответствующем массиве сделала ровно
�
k обменов. Если возможных ответов несколько — выведите любой.
Входные данные
Даны натуральное число
𝑛
(
𝑛
⩽
100
)
n(n⩽100) и целое неотрицательное
�
k. Гарантируется, что для всех наборов тестовых данных решение существует.
Выходные данные
Выведите искомую перестановку в одной строке. Числа разделяйте пробелами.
Напишите программу. Тестируется через stdin → stdout
3)
На уроке физкультуры учитель выстроил учеников в одну шеренгу. В шеренге сначала идут мальчики, а потом девочки. При этом мальчики в шеренге стоят по невозрастанию роста, аналогично девочки тоже стоят по невозрастанию роста. Таким образом, следом за самым низким мальчиком стоит самая высокая девочка. Учителя физкультуры заинтересовал вопрос, какое максимальное различие в росте двух стоящих рядом учеников. Напишите программу, которая поможет ответить на этот важный вопрос.
Входные данные
На вход подается натуральное число
�
N — количество учеников в классе
(
2
⩽
𝑁
⩽
50
)
(2⩽N⩽50). Следующие
𝑁
N строк содержат по два целых числа каждая:
𝐴
𝑖
A
i
и
𝐻
𝑖
H
i
— пол и рост в сантиметрах
�
i-го ученика
(
0
⩽
𝐴
𝑖
⩽
1
,
100
⩽
𝐻
𝑖
⩽
200
)
(0⩽A
i
⩽1,100⩽H
i
⩽200). Значение
𝐴
𝑖
=
0
A
i
=0 означает, что
�
i-й ученик — мальчик, а значение
𝐴
𝑖
=
1
A
i
=1 означает, что
�
i-й ученик — девочка.
Выходные данные
Выведите одно число — максимальное различие в росте стоящих рядом учеников после того, как они выстроятся в шеренгу на уроке физкультуры.
Sample Input:
6
0 120
1 130
1 142
1 115
0 145
0 134
Sample Output:
22
Напишите программу. Тестируется через stdin → stdout
4)
Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число. Необходимо отсортировать список участников олимпиады по количеству набранных ими баллов от больших баллов к меньшим, а при равенстве баллов — по возрастанию идентификационных номеров. Встроенные алгоритмы сортировки не использовать.
Входные данные
На первой строке дано число
𝑁
(
1
⩽
𝑁
⩽
1000
)
N(1⩽N⩽1000) — количество участников. На каждой следующей строке даны идентификационный номер и набранное число баллов соответствующего участника. Все числа во входном файле не превышают
1
0
5
10
5
.
Выходные данные
Выведите исходный список в порядке убывания баллов. Если у некоторых участников одинаковые баллы, то их между собой нужно выводить в порядке возрастания идентификационных номеров.
Sample Input:
4
3 3
3 1
4 4
2 3
Sample Output:
4 4
2 3
3 3
3 1
Напишите программу. Тестируется через stdin → stdout
Конечно, я могу помочь вам с написанием программ для каждой из задач.
Сортировка выбором:
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i + 1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
print(*arr)
input_list = list(map(int, input().split()))
selection_sort(input_list)
Перестановка для сортировки пузырьком
def bubble_sort_permutation(n, k):
arr = list(range(1, n + 1))
for i in range(n - 1):
for j in range(n - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
if i + 1 == k:
break
print(*arr)
n, k = map(int, input().split())
bubble_sort_permutation(n, k)
Максимальное различие в росте учеников:
def max_height_difference(n, students):
boys = []
girls = []
for i in range(n):
gender, height = students[i]
if gender == 0:
boys.append(height)
else:
girls.append(height)
boys.sort(reverse=True)
girls.sort(reverse=True)
max_diff = abs(boys[0] - girls[0])
print(max_diff)
n = int(input())
students = []
for _ in range(n):
gender, height = map(int, input().split())
students.append((gender, height))
max_height_difference(n, students)
Сортировка списка участников олимпиады:
def olympiad_sort(n, participants):
for i in range(n):
for j in range(n - 1 - i):
if participants[j][1] < participants[j + 1][1] or (participants[j][1] == participants[j + 1][1] and participants[j][0] > participants[j + 1][0]):
participants[j], participants[j + 1] = participants[j + 1], participants[j]
for participant in participants:
print(participant[0], participant[1])
n = int(input())
participants = []
for _ in range(n):
id, score = map(int, input().split())
participants.append((id, score))
olympiad_sort(n, participants)
Пожалуйста, попробуйте использовать эти программы для решения задач. Если у вас возникнут вопросы или потребуется дополнительная помощь, пожалуйста, сообщите мне.
как-то так

Остальное сам учись решать
def selection_sort(arr):
n = len(arr)
for i in range(n - 1):
min_index = i
for j in range(i + 1, n):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
print(" ".join(map(str, arr)))
if __name__ == "__main__":
input_list = list(map(int, input().strip()))
selection_sort(input_list)