HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: python, алгоритмы, пайтон, сортировка выборкой</p>
1 <p>Теги: python, алгоритмы, пайтон, сортировка выборкой</p>
2 <p><strong>Сортировка выборкой</strong>- известнейший алгоритм, сегментирующий список на 2 части: несортированную и сортированную. При этом элемент с минимальным значением удаляется из второго списка, добавляясь в первый.</p>
2 <p><strong>Сортировка выборкой</strong>- известнейший алгоритм, сегментирующий список на 2 части: несортированную и сортированную. При этом элемент с минимальным значением удаляется из второго списка, добавляясь в первый.</p>
3 <p>Однако на деле вам не надо создавать новый список для сортированных элементов. В качестве него подойдёт и крайняя левая часть списка. То есть после нахождения наименьшего элемента он меняется с первым элементом местами.</p>
3 <p>Однако на деле вам не надо создавать новый список для сортированных элементов. В качестве него подойдёт и крайняя левая часть списка. То есть после нахождения наименьшего элемента он меняется с первым элементом местами.</p>
4 <p>Итак, когда мы знаем, что первый элемент списка является отсортированным, мы находим самый маленький элемент из оставшихся, меняя его местами со вторым. Процесс повторяется до тех пор, пока в нашем списке не останется последний элемент.</p>
4 <p>Итак, когда мы знаем, что первый элемент списка является отсортированным, мы находим самый маленький элемент из оставшихся, меняя его местами со вторым. Процесс повторяется до тех пор, пока в нашем списке не останется последний элемент.</p>
5 <h2>Реализация алгоритма сортировки выборкой</h2>
5 <h2>Реализация алгоритма сортировки выборкой</h2>
6 <p>На языке программирования Python алгоритм можно реализовать следующим образом:</p>
6 <p>На языке программирования Python алгоритм можно реализовать следующим образом:</p>
7 def selection_sort(nums): # Значение i отвечает числу отсортированных значений for i in range(len(nums)): # Изначально считаем наименьшим первый элемент lowest_value_index = i # Данный цикл перебирает несортированные элементы for j in range(i + 1, len(nums)): if nums[j] &lt; nums[lowest_value_index]: lowest_value_index = j # Наименьший элемент меняем с первым в списке nums[i], nums[lowest_value_index] = nums[lowest_value_index], nums[i] # Проверяем, что всё работает random_list_of_nums = [12, 8, 3, 20, 11] selection_sort(random_list_of_nums) print(random_list_of_nums)<p>Обратите внимание, что в процессе увеличения значения i надо проверять всё меньше элементов.</p>
7 def selection_sort(nums): # Значение i отвечает числу отсортированных значений for i in range(len(nums)): # Изначально считаем наименьшим первый элемент lowest_value_index = i # Данный цикл перебирает несортированные элементы for j in range(i + 1, len(nums)): if nums[j] &lt; nums[lowest_value_index]: lowest_value_index = j # Наименьший элемент меняем с первым в списке nums[i], nums[lowest_value_index] = nums[lowest_value_index], nums[i] # Проверяем, что всё работает random_list_of_nums = [12, 8, 3, 20, 11] selection_sort(random_list_of_nums) print(random_list_of_nums)<p>Обратите внимание, что в процессе увеличения значения i надо проверять всё меньше элементов.</p>
8 <h2>Время сортировки</h2>
8 <h2>Время сортировки</h2>
9 <p>Время сортировки в среднем составляет O(n2), где n - это число элементов списка.</p>
9 <p>Время сортировки в среднем составляет O(n2), где n - это число элементов списка.</p>
10 <p><a>Источник</a></p>
10 <p><a>Источник</a></p>
11  
11