Ваня придумал новый алгоритм сортировки и сейчас тренируется на кубиках с цифрами, чтобы понять, как он работает. перед ним на столе лежат кубики с числами от 1 до 10 (на каждом кубике записано одно число), выложенные в таком порядке: 8 9 10 4 5 6 1 7 2 3 за одну операцию ваня берет несколько рядом стоящих кубиков как одну конструкцию, переворачивает и кладет на прежнее место. например, если бы кубики лежали в таком порядке: 1 2 3 4 5 6 7 8 9 10, а ваня взял бы кубики начиная с кубика с цифрой 4 и заканчивая кубиком с цифрой 9 и перевернул бы, то получилась бы такая последовательность: 1 2 3 9 8 7 6 5 4 10. то, что какие-то кубики после выполнения подобных операций окажутся лежащими вверх ногами, ваню не смущает. кроме того, ваня различает кубик с цифрой 6 и кубик с цифрой 9 (они разного цвета, поэтому невозможно одну цифру получить из другой при перевороте). ване понять, какое наименьшее количество таких операций потребуется, чтобы кубики стали лежать в порядке возрастания: 1 2 3 4 5 6 7 8 9 10. комментарий. если бы у него было всего 4 кубика и они лежали в таком порядке: 4 1 3 2, то наименьшее количество операций было бы равно двум: сначала переворачиваем кусок из первых двух кубиков слева, получаем 1 4 3 2, затем переворачиваем кусок из трех кубиков справа, получаем 1 2 3 4.
Фрагмент записан верно.
1.
Полный код:
arr = [i for i in range(9)]
print(arr)
a = arr[2]
arr[2]=arr[8]
arr[8]=a
print(arr)
2. В Python третья переменная нам не нужна для перестановки местами элементов списка, мы можем намного проще сделать. А если говорить про все остальные языки, то без третьей переменной мы не сможем никак иначе обменять значения элементов массива. Например: Хотим мы найти максимум и переставить его на 5 позицию, без 3 переменной нам никак не обойтись.
3.
i_max - индекс максимального элемента
i_min - индекс минимального элемента
arr - наш список
Наш фрагмент кода выглядит так:
arr[i_max], arr[i_min] = arr[i_min], arr[i_max]
Мы не можем их никак отсортировать.
1. Значений/диапазона значений у нас нет.
2. Функции принимают разные аргументы, add и sub принимаю a,b, а mult принимает x. Даже примерно сказать не можем.
Можем разобраться на примере.
Пусть a = 5, b = 5, x = 5.
Тогда add вернет нам 10
mult вернёт нам 25
sub вернет нам 0
Получается, что mult всегда выдает нам максимальное значение, а sub минимальное? Не-а.
Другой пример.
a = - 5 , b = - 5, x = 0
Тогда add вернет нам -10
mult вернет нам 0
sub вернёт нам 0
Из этого примера делаем вывод, что mult дает значение такое же, как и sub.
Общий вывод: Всё зависит от переменных, так просто сравнить функции - нельзя.