>  기사  >  백엔드 개발  >  Python을 사용하여 선택 정렬 알고리즘의 원리와 실제 적용 시나리오를 학습합니다.

Python을 사용하여 선택 정렬 알고리즘의 원리와 실제 적용 시나리오를 학습합니다.

王林
王林원래의
2024-02-03 08:26:05393검색

Python을 사용하여 선택 정렬 알고리즘의 원리와 실제 적용 시나리오를 학습합니다.

Python을 통해 선택 정렬의 기본 아이디어와 응용을 알아보세요

선택 정렬은 정렬할 데이터에서 가장 작은(또는 가장 큰) 요소를 선택하는 것이 기본 아이디어입니다. 그런 다음 정렬되지 않은 나머지 데이터에서 가장 작은(또는 가장 큰) 요소를 선택하여 정렬된 영역의 끝에 배치하는 방식으로 모든 데이터가 정렬될 때까지 계속됩니다.

선택 정렬의 구체적인 단계는 다음과 같습니다.

  1. 먼저 정렬할 데이터에서 가장 작은(또는 가장 큰) 요소를 찾아 첫 번째 요소와 위치를 교환합니다.
  2. 그런 다음 정렬되지 않은 나머지 데이터에서 가장 작은(또는 가장 큰) 요소를 찾아 그 위치를 두 번째 요소와 바꿉니다.
  3. 모든 데이터가 정렬될 때까지 정렬되지 않은 나머지 데이터의 최소값(또는 최대값)을 정렬된 영역의 마지막 요소와 순차적으로 교환하면서 위 단계를 반복합니다.

다음은 Python을 사용하여 선택 정렬을 구현하는 코드 예제입니다.

def selection_sort(arr):
    n = len(arr)
    for i in range(n-1):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i] 

# 测试代码
arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
    print(arr[i], end=" ")

위 코드에서 selection_sort函数实现了选择排序算法。在每次循环中,通过min_idx는 현재 정렬되지 않은 영역에 최소값의 인덱스를 기록하고 내부 루프의 정렬되지 않은 영역에서 최소값을 찾습니다. , 그리고 그것을 다음과 교환합니다. 이 작업은 해당 위치를 정렬된 범위의 마지막 요소와 교환합니다. 마지막으로 여러 루프를 통해 전체 배열이 정렬됩니다.

위 코드의 출력 결과는 다음과 같습니다.

排序后的数组:
11 12 22 25 64

선택 정렬의 시간 복잡도는 O(n^2)이므로 데이터 양이 많은 상황에는 적합하지 않습니다. 그러나 선택 정렬의 구현은 상대적으로 간단하고 코드도 이해하기 쉽기 때문에 일부 특정 시나리오에서는 여전히 특정 적용 가치를 갖습니다.

위의 코드 예제와 설명을 통해 선택 정렬의 기본 아이디어와 응용 방법을 배웠습니다. 선택 정렬 알고리즘을 이해하고 익히는 데 도움이 되기를 바랍니다.

위 내용은 Python을 사용하여 선택 정렬 알고리즘의 원리와 실제 적용 시나리오를 학습합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.