Найти площадь и периметр прямоугольного треугольника по двум заданным катетам



бет29/34
Дата05.01.2022
өлшемі186,75 Kb.
#129167
1   ...   26   27   28   29   30   31   32   33   34
Байланысты:
шпор

Функция сортировки выбором:

from random import randint

 

 



def sel_sort(array):

for i in range(len(array) - 1):

m = i


j = i + 1

while j < len(array):

if array[j] < array[m]:

m = j


j = j + 1

array[i], array[m] = array[m], array[i]

 

 

a = []



for i in range(10):

a.append(randint(1, 99))

 

print(a)

sel_sort(a)



print(a)

Сортировка пузырьком - это метод сортировки массивов и списков путем последовательного сравнения и обмена соседних элементов, если предшествующий оказывается больше последующего.

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

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

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

Пусть имеется список [6, 12, 4, 3, 8].

За первую итерацию внешнего цикла число 12 переместится в конец. Для этого потребуется 4 сравнения во внутреннем цикле:


  • 6 > 12? Нет

  • 12 > 4? Да. Меняем местами

  • 12 > 3? Да. Меняем местами

  • 12 > 8? Да. Меняем местами

Результат: [6, 4, 3, 8, 12]

За вторую итерацию внешнего цикла число 8 переместиться на предпоследнее место. Для этого потребуется 3 сравнения:



  • 6 > 4? Да. Меняем местами

  • 6 > 3? Да. Меняем местами

  • 6 > 8? Нет

Результат: [4, 3, 6, 8, 12]

На третьей итерации внешнего цикла исключаются два последних элемента. Количество итераций внутреннего цикла равно двум:



  • 4 > 3? Да. Меняем местами

  • 4 > 6? Нет

Результат: [3, 4, 6, 8, 12]

На четвертой итерации внешнего цикла осталось сравнить только первые два элемента, поэтому количество итераций внутреннего равно единице:



  • 3 > 4? Нет

Результат: [3, 4, 6, 8, 12]

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

Решение данной задачи классическим способом, без использования продвинутых возможностей Python, может быть таким.

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

Далее снова посимвольно перебираем строку. Если очередной символ не является пробелом, то формировать новую строку добавлением к ней этого символа. В ветку elif попадают символы пробела, но здесь проверяется не был ли равен предыдущий символ пробелу. Если это не так (не был равен), то только тогда к новой строке добавляется "*". Лишние пробелы будут просто пропущены и не добавлены к новой строке.

s = input()

 

i = 0




Достарыңызбен бөлісу:
1   ...   26   27   28   29   30   31   32   33   34




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет