태지쌤

로봇 & 코딩교육 No.1 크리에이터

IT관련

쉽게 이해하는 삽입 정렬 알고리즘

태지쌤 2025. 3. 24. 18:30
반응형

https://link.coupang.com/a/ckTmok

 

LG전자 2024 그램 16 코어i5 인텔 13세대 - 노트북 | 쿠팡

현재 별점 4.8점, 리뷰 643개를 가진 LG전자 2024 그램 16 코어i5 인텔 13세대! 지금 쿠팡에서 더 저렴하고 다양한 노트북 제품들을 확인해보세요.

www.coupang.com

 

 

삽입 정렬 알고리즘은 카드 게임을 할 때 손에 든 카드를 정렬하는 방식과 매우 유사합니다.

이 알고리즘은 간단하면서도 효과적인 정렬 방법으로, 작은 데이터셋에 특히 유용합니다.

삽입 정렬의 원리

  1. 첫 번째 카드: 첫 번째 요소는 이미 정렬된 것으로 간주합니다.
  2. 두 번째 카드부터: 두 번째 요소부터 시작하여 끝까지 반복합니다.
  3. 비교와 삽입: 현재 요소를 이전의 정렬된 부분과 비교하여 적절한 위치에 삽입합니다.
  4. 반복: 모든 요소가 정렬될 때까지 이 과정을 반복합니다.

 

파이썬 코드 예시

다음은 삽입 정렬을 구현한 파이썬 코드입니다:

def insertion_sort(arr): for i in range(1, len(arr)): key = arr[i] j = i - 1 while j >= 0 and arr[j] > key: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = key return arr # 사용 예시 numbers = [64, 34, 25, 12, 22, 11, 90] sorted_numbers = insertion_sort(numbers) print("정렬된 배열:", sorted_numbers)

이 코드는 리스트를 입력받아 정렬된 리스트를 반환합니다.

삽입 정렬의 특징

  1. 간단함: 구현이 쉽고 이해하기 쉽습니다.
  2. 적은 데이터에 효과적: 작은 데이터셋에서는 빠른 성능을 보입니다.
  3. 안정적: 동일한 값의 요소들의 상대적 순서가 유지됩니다.
  4. 제자리 정렬: 추가 메모리를 거의 사용하지 않습니다.

삽입 정렬은 그 단순함에도 불구하고 실제 많은 상황에서 유용하게 사용됩니다.

특히 거의 정렬된 데이터나 실시간으로 들어오는 데이터를 정렬할 때 효과적입니다.

하지만 대규모 데이터셋에서는 퀵 정렬이나 병합 정렬 같은 더 효율적인 알고리즘을 사용하는 것이 좋습니다.

반응형