# сортировка наименьшего элемента массива
#Определяем наименьшщий элемент массива
#и возвращаем его индекс
array_example = [100,25,89,63]
def find_small(arr):
small = arr[0] # кладем в переменную значение нулевого элемента массива
count = 0 # переменная в которой будет хран наименьший элемент массива
size = len(arr) # узнаем размер массива
i = 1 # счетчик с которого начнем обход массива
while i < size: # пока счетчик не равен длине массива обходим его
if arr[i] < small: # если 1 элемент массива меньше 0 элемента массива
small = arr[i] # то в 0 элемент кладем первый
count = i # и значение счетчика записываем в спец переменную
i = i + 1 # счетчик увеличиваем на единицу
return count # возвращаем индекс минимального элемента массива
print(find_small(array_example)) # проверка работы кода
# Функция сортировки выбором
def select_sort(arr): #
new_arr = [] # создаем массив новый куда будем класть отсоортированные значения
for i in range(len(arr)): # в цикле проходимся по каждому элементу массива
small = find_small(arr) # узнаем порядковый номер наименьшего элемента массива
new_arr.append(arr.pop(small)) # в новый массив добавляем значние наименьшего элемента и одновременно удаляем
return new_arr # это значние со старого массива , возвращаем новый отсортированный массив
print(select_sort(array_example)) # тестируем , все работает
Дан код, который немножко переделал, но факту такой же как с книги.
Сортировка с выбором преподносится ,как эффективная сортировка.
Вопрос, как она может быть эффективна в плане затраты ресурсов, если при запуске первой функции, она автоматически запускает вторую?