В этом блоге я расскажу о том, как работает выбор отбора. Я буду реализовывать примеры в Python3.
Сортировка выбора – это алгоритм, который выбирает наименьший элемент из несортированного списка в каждой итерации и поместил этот элемент в начале несортированного списка.
Как работает сортировка отбора?
Слово «выбирает» означает тщательно выбранный из группы вещей как лучших или наиболее ценных. Если у меня есть список чисел и, я выбираю случайное число без какого-либо мышления. Это не должно быть выбрать. Скорее, если я вдумчиво выберу лучший или подходящий, который он должен быть выбран.
В сортировке выбора каждый раз, когда мы выбираем соответствующие элементы из массива, затем поместите его на соответствующую позицию. Затем применяя эту технику в остальных элементах списка, мы получим наш отсортированный массив.
Пусть, у нас пять номеров 10, 5, 2, 8, 7, и нам нужно сортировать эти цифры в порядке возрастания. Для этого используйте алгоритм сортировки отбора. (рисунок 1)
Шаг-1: Сначала нам нужно найти наименьшее число из списка чисел. В этом случае число 2. Теперь принося 2 в первую позицию списка. Затем старое положение Exchange 2 с 10 (10 было в первой позиции). После этого шаг наш список выглядит так. (рис. 2)
Шаг 2: Теперь у нас есть наименьшее число в начале списка. Итак, теперь мы узнаем наименьшее число от остальных четырех чисел. Это 5. Здесь 5 это правильное положение. Вот почему нет необходимости обманывать. (рис. 3)
Шаг 3: На этом этапе мы узнаем наименьшее число среди 10, 8, 7. Вот 7 самая маленькая. Теперь принося 7 в первую очередь среди этих трех чисел. И обмениваться положением 10. Теперь наш список выглядит как – 2, 5, 7, 8, 10, и мы знаем, что первые три числа в правильном положении. (рис. 4)
Шаг-4: Теперь найдите самый маленький между 8 и 10. Здесь 8 – самый маленький, и он находится в правильном положении. Итак, нет необходимости обменяться позициями. (рис. 5)
В течение 5 номеров 4 из них отсортированы. Итак, последний естественно в правильном положении. Наконец, наш список полностью отсортирован. (рис. 6)
Алгоритм отбора сортировки подробно:
Вход: Список Л
есть n
Количество элементов.
Шаг-1: Пусть я
Шаг 2: Если Я
больше или равно (N-1)
; Перейти к шагу 11.
Шаг 3: Пусть индекс наименьших элементов списка есть, index_min.
Шаг-4: Пусть, J + 1.
Шаг-5: если J
больше или равно n
Затем перейдите к шагу 9
Шаг-6: если L [j]
Шаг-7: index_min.
Шаг-8: Приращение J
по 1
Затем перейдите к шагу 5.
Шаг-9: Если Я
и index_min не равен, а затем поменять значение Л [я]
и L [index_min]
Шаг-10: Увеличение Я
по 1
Шаг-11: Список теперь отсортирован по возрастанию.
Реализация в Python 3
def selection_sort(L): n = len(L) for i in range(0, n-1): index_min = i for j in range(i+1, n): if L[j] < L[index_min]: index_min = j if index_min != i: L[i], L[index_min] = L[index_min], L[i] if __name__ == "__main__": L = [10, 5, 2, 8, 7] print("Before sort:", L) selection_sort(L) print("After sort:", L)
Этот блог, ранее опубликованный на medium.com
Оригинал: “https://dev.to/akiltipu/algorithm-selection-sort-how-it-works-and-implementation-in-python-2j9k”