Лабораторная работа № 5. Алгоритмы сортировки

ПредупреждениеНеобходимые файлы

Перед началом работы, cкачайте файл с заданиями, выполняемыми без компьютера.

Теоретические сведения

Пузырьковая сортировка

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

Кликните по изображению, чтобы ознакомится с интерактивной визуализацией алгоритма.

Блок-схема алгоритма пузырьковой сортировки показана на Рисунке 1.

Рисунок 1

Сортировка выбором

В основе алгоритма лежит поиск минимального (или максимального) элемента в неотсортированной части массива. Найденный элемент размещается в конце неотсортированной части массива и поиск подходящего элемента начинается заново.

Кликните по изображению, чтобы ознакомится с интерактивной визуализацией алгоритма.

Блок-схема сортировки выбором показана на Рисунке 2.

Рисунок 2

Задания для самостоятельной работы

УведомлениеВнимание

Задания обозначенные значком выполняются на распечатках или в тетради, обозначенные - на компьютере в среде программирования.

Задание 1. Пузырьковая сортировка

Дан список. Провести трассировку алгоритма после выполнения каждой итерации внешнего цикла. Используйте блок-схему на рисунке 1.

7

23

15

42

9

12

31

5

18

47

3

27

14

39

21

8

35

19

44

2

11

24

37

6

50

16

29

4

33

20

10

45

28

13

36

17

30

1

48

25

22

49

34

7

40

26

9

38

43

15

32

5

41

18

27

46

12

29

3

50

14

47

21

8

35

19

42

6

24

37

Задание 2. Реализация пузырьковой сортировки (sam02.py)

Используйте блок-схему на рисунке 1, чтобы реализовать метод пузырьковой сортировки. В списке хранятся строковые величины.

Критерий сортировки в инструкции ветвления замените исходя из условия для вашего варианта.

Сортировка по убыванию количества символов в строке.

До сортировки: ['яблоко', 'дом', 'программирование', 'кот', 'стол']
После сортировки: ['программирование', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по первым двум буквам слов в алфавитном порядке.

До сортировки: ['яблоко', 'апельсин', 'груша', 'банан', 'абрикос']
После сортировки: ['абрикос', 'апельсин', 'банан', 'груша', 'яблоко']

Сортировка по количеству букв а в слове (по убыванию).

До сортировки: ['ананас', 'банан', 'яблоко', 'груша', 'абрикос']
После сортировки: ['ананас', 'банан', 'абрикос', 'яблоко', 'груша']

Сортировка по результату конкатенации первой и последней буквы слова.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['дом', 'кот', 'мир', 'стол', 'яблоко']

Сортировка по последним двум буквам слов.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['мир', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по возрастанию количества символов в строке.

До сортировки: ['программирование', 'яблоко', 'дом', 'кот', 'стол']
После сортировки: ['дом', 'кот', 'стол', 'яблоко', 'программирование']

Сортировка строк по алфавиту без учёта регистра.

До сортировки: ['Яблоко', 'дом', 'Кот', 'стол', 'Апельсин']
После сортировки: ['Апельсин', 'дом', 'Кот', 'стол', 'Яблоко']

Сортировка по убыванию количества символов в строке.

До сортировки: ['яблоко', 'дом', 'программирование', 'кот', 'стол']
После сортировки: ['программирование', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по первым двум буквам слов.

До сортировки: ['яблоко', 'апельсин', 'груша', 'банан', 'абрикос']
После сортировки: ['абрикос', 'апельсин', 'банан', 'груша', 'яблоко']

Сортировка по количеству букв а в слове.

До сортировки: ['ананас', 'банан', 'яблоко', 'груша', 'абрикос']
После сортировки: ['ананас', 'банан', 'абрикос', 'яблоко', 'груша']

Сортировка по результату конкатенации первой и последней буквы слова.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['дом', 'кот', 'мир', 'стол', 'яблоко']

Сортировка по последним двум буквам слов.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['мир', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по возрастанию количества символов в строке.

До сортировки: ['программирование', 'яблоко', 'дом', 'кот', 'стол']
После сортировки: ['дом', 'кот', 'стол', 'яблоко', 'программирование']

Сортировка строк по алфавиту без учёта регистра.

До сортировки: ['Яблоко', 'дом', 'Кот', 'стол', 'Апельсин']
После сортировки: ['Апельсин', 'дом', 'Кот', 'стол', 'Яблоко']

Используйте следующий шаблон для решения задачи:

def bubbleSort(lst):
    # вместо этого комментария запишите код функции
    
# код после этого комментария оставьте без изменения

slova = input("Введите слова через пробел: ")
# разбиваем строку на слова по пробелу; метод split() вернёт список
s_list = slova.split()                          
    
print("До сортировки:", s_list)
bubbleSort(s_list)
print("После сортировки:", s_list)

Задание 3. Сортировка выбором

Дан список. Провести трассировку алгоритма. Используйте блок-схему на рисунке 2.

13

28

4

41

20

17

32

6

45

22

9

34

11

47

26

14

29

3

48

25

18

33

7

42

21

12

27

5

44

19

16

31

8

46

23

10

35

2

49

24

15

30

1

43

27

19

36

9

40

28

11

38

4

45

22

14

37

6

41

29

13

32

8

47

25

17

34

5

42

21

Задание 4. Реализация сортировки выбором (sam04.py)

Используйте блок-схему на рисунке 2, чтобы реализовать сортировку выбором. В списке хранятся строковые величины.

Критерий сортировки в инструкции ветвления замените исходя из условия для вашего варианта.

Сортировка по убыванию количества символов в строке.

До сортировки: ['яблоко', 'дом', 'программирование', 'кот', 'стол']
После сортировки: ['программирование', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по первым двум буквам слов в алфавитном порядке.

До сортировки: ['яблоко', 'апельсин', 'груша', 'банан', 'абрикос']
После сортировки: ['абрикос', 'апельсин', 'банан', 'груша', 'яблоко']

Сортировка по количеству букв а в слове (по убыванию).

До сортировки: ['ананас', 'банан', 'яблоко', 'груша', 'абрикос']
После сортировки: ['ананас', 'банан', 'абрикос', 'яблоко', 'груша']

Сортировка по результату конкатенации первой и последней буквы слова.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['дом', 'кот', 'мир', 'стол', 'яблоко']

Сортировка по последним двум буквам слов.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['мир', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по возрастанию количества символов в строке.

До сортировки: ['программирование', 'яблоко', 'дом', 'кот', 'стол']
После сортировки: ['дом', 'кот', 'стол', 'яблоко', 'программирование']

Сортировка строк по алфавиту без учёта регистра.

До сортировки: ['Яблоко', 'дом', 'Кот', 'стол', 'Апельсин']
После сортировки: ['Апельсин', 'дом', 'Кот', 'стол', 'Яблоко']

Сортировка по убыванию количества символов в строке.

До сортировки: ['яблоко', 'дом', 'программирование', 'кот', 'стол']
После сортировки: ['программирование', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по первым двум буквам слов.

До сортировки: ['яблоко', 'апельсин', 'груша', 'банан', 'абрикос']
После сортировки: ['абрикос', 'апельсин', 'банан', 'груша', 'яблоко']

Сортировка по количеству букв а в слове.

До сортировки: ['ананас', 'банан', 'яблоко', 'груша', 'абрикос']
После сортировки: ['ананас', 'банан', 'абрикос', 'яблоко', 'груша']

Сортировка по результату конкатенации первой и последней буквы слова.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['дом', 'кот', 'мир', 'стол', 'яблоко']

Сортировка по последним двум буквам слов.

До сортировки: ['яблоко', 'дом', 'кот', 'стол', 'мир']
После сортировки: ['мир', 'яблоко', 'стол', 'дом', 'кот']

Сортировка по возрастанию количества символов в строке.

До сортировки: ['программирование', 'яблоко', 'дом', 'кот', 'стол']
После сортировки: ['дом', 'кот', 'стол', 'яблоко', 'программирование']

Сортировка строк по алфавиту без учёта регистра.

До сортировки: ['Яблоко', 'дом', 'Кот', 'стол', 'Апельсин']
После сортировки: ['Апельсин', 'дом', 'Кот', 'стол', 'Яблоко']

Используйте следующий шаблон для решения задачи:

def selectionSort(lst):
    # вместо этого комментария запишите код функции
    
# код после этого комментария оставьте без изменениq

slova = input("Введите слова через пробел: ")
# разбиваем строку на слова по пробелу; метод split() вернёт список
s_list = slova.split()          
    
print("До сортировки:", s_list)
selectionSort(s_list) # вызов функции сортировки
print("После сортировки:", s_list)

Задание 5 (sam05.py)

Решите задачу вашего варианта. Для решения используйте функцию sorted().

Дан список, элементами которого являются списки из четырёх значений: [фамилия, оценка1, оценка2, оценка3]. Отсортируйте список по возрастанию среднего балла.


В следующем шаблоне реализуйте функцию sred(stud), которая принимает на вход список stud с информацией об одном студенте и возвращает его средний балл.

def sred(stud):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = ["Наталья", 8, 9, 7]
print(sred(test))

Убедитесь что ваша функции возвращает правильный ответ - число 8.0.



Добавьте к вашему коду содержимое реального списка студентов и вызов функции sorted().

stud = [
    ["Анна", 9, 8, 9],
    ["Борис", 5, 7, 6],
    ["Виктор", 8, 7, 7],
]

print(sorted(stud, key=sred))

Ожидаемый результат:

[['Борис', 5, 7, 6], ['Виктор', 8, 7, 7], ['Анна', 9, 8, 9]]

Дан список строк, которые содержат даты в формате дд-мм-гггг. Отсортируйте эти даты в хронологическом порядке.


В следующем шаблоне реализуйте функцию form(date), которая принимает на вход строку с датой date и создаёт на её основе новую строку со следующим форматом - гггг-мм-дд.

def form(date):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = "07-10-2013"
print(form(test))

Убедитесь что ваша функции возвращает правильный ответ - строку 2013-10-07.



Добавьте к вашему коду содержимое реального списка дат и вызов функции sorted().

dates = ["15-03-2023", "01-12-2022", "10-01-2023"]
    
print(sorted(dates, key=form))

Ожидаемый результат:

['01-12-2022', '10-01-2023', '15-03-2023']

Дан список координат точек на плоскости. Координаты точки хранятся в списке вида [x, y]. Отсортируйте точки по возрастанию расстояния от начала координат. Расстояние \(d\) рассчитывайте по формуле: \[ d = \sqrt{x^2 + y^2}=(x^2+y^2)^{\frac{1}{2}} \]


В следующем шаблоне реализуйте функцию dist(point), которая принимает на вход список point состоящий из двух элементов - координат x и y точки на плоскости. Функция должна вернуть расстояния от точки p до начала координат.

def dist(point):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = [4, 3]       # тестовые данные
print(dist(test))   # вызов функции dist

Убедитесь что ваша функции возвращает правильный ответ - число 5.0.



Добавьте к вашему коду содержимое реального списка точек и вызов функции sorted().

points = [[5, 0], [3, 4], [2, 3], [1, 1]]
    
print(sorted(points, key=dist))

Ожидаемый результат:

[[1, 1], [2, 3], [5, 0], [3, 4]]

Дан список строк, в которых записаны адреса электронной почты. Отсортировать список по длине имени пользователя.


В следующем шаблоне реализуйте функцию mail(u), которая принимает на вход строку user содержащую адрес электронной почты. Функция должна вернуть количество символов в имени пользователя (до символа @).

def mail(user):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = "user@mail.org"      # тестовые данные
print(mail(test))           # вызов функции mail

Убедитесь что ваша функции возвращает правильный ответ - число 4.



Добавьте к вашему коду содержимое реального списка точек и вызов функции sorted().

emails = [
    "user@domain.com",
    "a@test.net",
    "john.doe@company.org",
]
    
print(sorted(emails, key=mail))

Ожидаемый результат:

['a@test.net', 'user@domain.com', 'john.doe@company.org']

Дан список длин сторон прямоугольного параллелепипеда. Длина, ширина и высота каждого параллелепипеда хранится в списке вида [a, b, c]. Отсортируйте список по возрастанию площади боговой поверхности параллелепипеда: \[ S_{бок}=2c\cdot(a+b) \]


В следующем шаблоне реализуйте функцию S(box), которая принимает на вход списокbox. В списке хранятся длины трёх сторон прямоугольного параллелепипеда. Функция должна вернуть значение площади боковой поверхности.

def S(box):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = [5, 2, 8]        # тестовые данные
print(S(test))          # вызов функции S

Убедитесь что ваша функции возвращает правильный ответ - число 112.



Добавьте к вашему коду содержимое реального списка и вызов функции sorted().

boxes = [
    [6, 2, 9],
    [5, 5, 1],
    [2, 2, 6],
    [4, 4, 2]
]

print(sorted(boxes, key=S))

Ожидаемый результат:

[[5, 5, 1], [4, 4, 2], [2, 2, 6], [6, 2, 9]]

Дан список строк, в которых хранятся номера мобильных телефонов в формате +код страны(код оператора)номер. Отсортируйте список по кодам стран.


В следующем шаблоне реализуйте функцию code(tel), которая принимает на вход строкуtel. Функция должна вернуть числовой код, расположенный между символами + и (.

def code(tele):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = "+375(33)123"    # тестовые данные
print(code(test))       # вызов функции S

Убедитесь что ваша функции возвращает правильный ответ - число 375.



Добавьте к вашему коду содержимое реального списка телефонов и функцию sorted().

phones = [
    "+375(29)123",
    "+7(33)321",
    "+81(32)658"
]

print(sorted(phones, key=code))

Ожидаемый результат:

['+7(33)321', '+81(32)658', '+375(29)123']

Дан список в котором хранятся результаты киберспортивных матчей. Элементами списка является список формата [название команды, побед, поражений]. Отсортируйте список по убыванию значения рейтинга \(R\), который рассчитайте по следующей формуле: \[ R = 0.6 \cdot побед + 0.4 \cdot поражений \]


В следующем шаблоне реализуйте функцию rate(team), которая принимает на вход список team. Функция должна вернуть значение рейтинга, рассчитанного по формуле.

def rate(team):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = ["V", 5, 10]     # тестовые данные
print(rate(test))       # вызов функции S

Убедитесь что ваша функции возвращает правильный ответ - число 7.0.



Добавьте к вашему коду содержимое реального списка команд и функцию sorted().

teams = [
    ["Титаны", 12, 3],
    ["V", 5, 10],
    ["GG", 7, 8]
]
    
print(sorted(teams, key=rate, reverse=True))

Ожидаемый результат:

[['Титаны', 12, 3], ['GG', 7, 8], ['V', 5, 10]]

Дан список, элементами которого являются списки из четырёх значений: [фамилия, оценка1, оценка2, оценка3]. Отсортируйте список по возрастанию среднего балла.


В следующем шаблоне реализуйте функцию sred(stud), которая принимает на вход список stud с информацией об одном студенте и возвращает его средний балл.

def sred(stud):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = ["Наталья", 8, 9, 7]
print(sred(test))

Убедитесь что ваша функции возвращает правильный ответ - число 8.0.



Добавьте к вашему коду содержимое реального списка студентов и вызов функции sorted().

stud = [
    ["Анна", 9, 8, 9],
    ["Борис", 5, 7, 6],
    ["Виктор", 8, 7, 7],
]

print(sorted(stud, key=sred))

Ожидаемый результат:

[['Борис', 5, 7, 6], ['Виктор', 8, 7, 7], ['Анна', 9, 8, 9]]

Дан список строк, которые содержат даты в формате дд-мм-гггг. Отсортируйте эти даты в хронологическом порядке.


В следующем шаблоне реализуйте функцию form(date), которая принимает на вход строку с датой date и создаёт на её основе новую строку со следующим форматом - гггг-мм-дд.

def form(date):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = "07-10-2013"
print(form(test))

Убедитесь что ваша функции возвращает правильный ответ - строку 2013-10-07.



Добавьте к вашему коду содержимое реального списка дат и вызов функции sorted().

dates = ["15-03-2023", "01-12-2022", "10-01-2023"]
    
print(sorted(dates, key=form))

Ожидаемый результат:

['01-12-2022', '10-01-2023', '15-03-2023']

Дан список координат точек на плоскости. Координаты точки хранятся в списке вида [x, y]. Отсортируйте точки по возрастанию расстояния от начала координат. Расстояние \(d\) рассчитывайте по формуле: \[ d = \sqrt{x^2 + y^2}=(x^2+y^2)^{\frac{1}{2}} \]


В следующем шаблоне реализуйте функцию dist(point), которая принимает на вход список point состоящий из двух элементов - координат x и y точки на плоскости. Функция должна вернуть расстояния от точки p до начала координат.

def dist(point):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = [4, 3]       # тестовые данные
print(dist(test))   # вызов функции dist

Убедитесь что ваша функции возвращает правильный ответ - число 5.0.



Добавьте к вашему коду содержимое реального списка точек и вызов функции sorted().

points = [[5, 0], [3, 4], [2, 3], [1, 1]]
    
print(sorted(points, key=dist))

Ожидаемый результат:

[[1, 1], [2, 3], [5, 0], [3, 4]]

Дан список строк, в которых записаны адреса электронной почты. Отсортировать список по длине имени пользователя.


В следующем шаблоне реализуйте функцию mail(u), которая принимает на вход строку user содержащую адрес электронной почты. Функция должна вернуть количество символов в имени пользователя (до символа @).

def mail(user):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = "user@mail.org"      # тестовые данные
print(mail(test))           # вызов функции mail

Убедитесь что ваша функции возвращает правильный ответ - число 4.



Добавьте к вашему коду содержимое реального списка точек и вызов функции sorted().

emails = [
    "user@domain.com",
    "a@test.net",
    "john.doe@company.org",
]
    
print(sorted(emails, key=mail))

Ожидаемый результат:

['a@test.net', 'user@domain.com', 'john.doe@company.org']

Дан список длин сторон прямоугольного параллелепипеда. Длина, ширина и высота каждого параллелепипеда хранится в списке вида [a, b, c]. Отсортируйте список по возрастанию площади боговой поверхности параллелепипеда: \[ S_{бок}=2c\cdot(a+b) \]


В следующем шаблоне реализуйте функцию S(box), которая принимает на вход списокbox. В списке хранятся длины трёх сторон прямоугольного параллелепипеда. Функция должна вернуть значение площади боковой поверхности.

def S(box):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = [5, 2, 8]        # тестовые данные
print(S(test))          # вызов функции S

Убедитесь что ваша функции возвращает правильный ответ - число 112.



Добавьте к вашему коду содержимое реального списка и вызов функции sorted().

boxes = [
    [6, 2, 9],
    [5, 5, 1],
    [2, 2, 6],
    [4, 4, 2]
]

print(sorted(boxes, key=S))

Ожидаемый результат:

[[5, 5, 1], [4, 4, 2], [2, 2, 6], [6, 2, 9]]

Дан список строк, в которых хранятся номера мобильных телефонов в формате +код страны(код оператора)номер. Отсортируйте список по кодам стран.


В следующем шаблоне реализуйте функцию code(tel), которая принимает на вход строкуtel. Функция должна вернуть числовой код, расположенный между символами + и (.

def code(tele):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = "+375(33)123"    # тестовые данные
print(code(test))       # вызов функции S

Убедитесь что ваша функции возвращает правильный ответ - число 375.



Добавьте к вашему коду содержимое реального списка телефонов и функцию sorted().

phones = [
    "+375(29)123",
    "+7(33)321",
    "+81(32)658"
]

print(sorted(phones, key=code))

Ожидаемый результат:

['+7(33)321', '+81(32)658', '+375(29)123']

Дан список в котором хранятся результаты киберспортивных матчей. Элементами списка является список формата [название команды, побед, поражений]. Отсортируйте список по убыванию значения рейтинга \(R\), который рассчитайте по следующей формуле: \[ R = 0.6 \cdot побед + 0.4 \cdot поражений \]


В следующем шаблоне реализуйте функцию rate(team), которая принимает на вход список team. Функция должна вернуть значение рейтинга, рассчитанного по формуле.

def rate(team):
    # реализация функции
    
    return ... # замените многоточие на возвращаемый результат
    
test = ["V", 5, 10]     # тестовые данные
print(rate(test))       # вызов функции S

Убедитесь что ваша функции возвращает правильный ответ - число 7.0.



Добавьте к вашему коду содержимое реального списка команд и функцию sorted().

teams = [
    ["Титаны", 12, 3],
    ["V", 5, 10],
    ["GG", 7, 8]
]
    
print(sorted(teams, key=rate, reverse=True))

Ожидаемый результат:

[['Титаны', 12, 3], ['GG', 7, 8], ['V', 5, 10]]

Задание 6 (sam06.py)

Решите задачу вашего варианта.

Упорядочить список целых чисел так, чтобы в начале располагались четные элементы в порядке возрастания их значений, а затем нечетные элементы. Используйте пузырьковую сортировку.

Дан список целых чисел - оценок учащихся за контрольную работу. Список содержит чётное количество элементов. Значения вводятся с клавиатуры. Выведите пары чисел таким образом, чтобы разность оценок в каждой паре была максимальной. Каждую оценку из списка можно взять только один раз. Используйте пузырьковую сортировку.

7, 1, 2, 8, 10, 10, 3, 4
Ответ:
10, 1
10, 2
8, 3
7, 4

В статистике модой набора чисел называют число с наибольшим количеством вхождений в набор. Дан список целых чисел, вводимых с клавиатуры. Выведите на экран моду данного набора. Используйте пузырьковую сортировку.

4, 6, 2, 4, 3, 1
Ответ: 4

Дан список целых случайных чисел. Расположить элементы этого списка следующим образом: вначале положительные, затем нули, затем отрицательные. Используйте пузырьковую сортировку.

Упорядочить список целых чисел так, чтобы в начале располагались четные элементы в порядке возрастания их значений, а затем нечетные элементы. Используйте пузырьковую сортировку.

Дан список целых чисел - оценок учащихся за контрольную работу. Список содержит чётное количество элементов. Значения вводятся с клавиатуры. Выведите пары чисел таким образом, чтобы разность оценок в каждой паре была максимальной. Каждую оценку из списка можно взять только один раз. Используйте пузырьковую сортировку.

7, 1, 2, 8, 10, 10, 3, 4
Ответ:
10, 1
10, 2
8, 3
7, 4

В статистике модой набора чисел называют число с наибольшим количеством вхождений в набор. Дан список целых чисел, вводимых с клавиатуры. Выведите на экран моду данного набора. Используйте пузырьковую сортировку.

4, 6, 2, 4, 3, 1
Ответ: 4

Дан список целых случайных чисел. Расположить элементы этого списка следующим образом: вначале положительные, затем нули, затем отрицательные. Используйте сортировку выбором.

Упорядочить список целых чисел так, чтобы в начале располагались четные элементы в порядке возрастания их значений, а затем нечетные элементы. Используйте сортировку выбором

Дан список целых чисел - оценок учащихся за контрольную работу. Список содержит чётное количество элементов. Значения вводятся с клавиатуры. Выведите пары чисел таким образом, чтобы разность оценок в каждой паре была максимальной. Каждую оценку из списка можно взять только один раз. Используйте сортировку выбором

7, 1, 2, 8, 10, 10, 3, 4
Ответ:
10, 1
10, 2
8, 3
7, 4

В статистике модой набора чисел называют число с наибольшим количеством вхождений в набор. Дан список целых чисел, вводимых с клавиатуры. Выведите на экран моду данного набора. Используйте сортировку выбором

4, 6, 2, 4, 3, 1
Ответ: 4

Дан список целых случайных чисел. Расположить элементы этого списка следующим образом: вначале положительные, затем нули, затем отрицательные. Используйте сортировку выбором

Дан список целых чисел - оценок учащихся за контрольную работу. Список содержит чётное количество элементов. Значения вводятся с клавиатуры. Выведите пары чисел таким образом, чтобы разность оценок в каждой паре была максимальной. Каждую оценку из списка можно взять только один раз. Используйте сортировку выбором

7, 1, 2, 8, 10, 10, 3, 4
Ответ:
10, 1
10, 2
8, 3
7, 4

В статистике модой набора чисел называют число с наибольшим количеством вхождений в набор. Дан список целых чисел, вводимых с клавиатуры. Выведите на экран моду данного набора. Используйте сортировку выбором

4, 6, 2, 4, 3, 1
Ответ: 4