Python을 사용하여 선택 정렬을 수행하는 방법
선택 정렬은 간단하지만 효율성이 떨어지는 정렬 알고리즘입니다. 기본 아이디어는 매번 정렬할 데이터에서 가장 작은(또는 가장 큰) 요소를 선택하여 정렬된 순서의 끝에 배치하는 것입니다. 모든 데이터가 정렬될 때까지 이 과정을 여러 번 반복합니다.
다음에서는 선택 정렬에 Python을 사용하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다.
def selection_sort(lst): n = len(lst) for i in range(n-1): min_index = i # 记录当前最小值的索引 for j in range(i+1, n): if lst[j] < lst[min_index]: min_index = j lst[i], lst[min_index] = lst[min_index], lst[i] # 将最小值交换到已排序序列的末尾
lst = [64, 25, 12, 22, 11] selection_sort(lst) print("排序后的列表:", lst)
출력 결과는 다음과 같습니다.
排序后的列表: [11, 12, 22, 25, 64]
위는 선택 정렬에 Python을 사용하는 구체적인 코드 예입니다. 코드 실행에 대해서는 아래에서 자세히 설명합니다.
선택 정렬에서는 두 가지 수준의 루프를 통해 구현합니다. 외부 루프는 매번 정렬되지 않은 하위 시퀀스에서 가장 작은 요소를 선택하는 시작 위치를 제어하는 반면, 내부 루프는 현재 정렬되지 않은 하위 시퀀스에서 가장 작은 요소를 찾는 데 사용됩니다. 현재 요소를 선택된 가장 작은 요소와 비교함으로써 하위 시퀀스에서 가장 작은 요소의 인덱스를 얻을 수 있습니다.
가장 작은 요소를 찾은 후 이를 정렬된 시퀀스의 마지막 요소와 교환하여 가장 작은 요소가 정렬된 시퀀스의 끝에 배치됩니다. 이 과정을 반복함으로써 매번 가장 작은 요소를 선택하고 이를 정렬된 순서의 끝에 배치하면 순서가 지정된 목록이 생성됩니다.
선택 정렬의 시간 복잡도는 O(n^2)이며, 여기서 n은 정렬할 요소 수입니다. 효율성은 상대적으로 낮지만 선택 정렬은 데이터 크기가 작을 때 여전히 간단하고 구현하기 쉬운 정렬 알고리즘입니다.
위 내용이 선택 정렬을 위해 Python을 이해하고 사용하는 데 도움이 되기를 바랍니다. 다른 질문이 있으시면 문의해 주세요.
위 내용은 Python에서 선택 정렬을 구현하는 방법에 대한 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!