>  기사  >  백엔드 개발  >  Python에서 삽입 정렬 알고리즘을 사용하는 간단한 분석 및 코드 예제에 대한 자세한 설명

Python에서 삽입 정렬 알고리즘을 사용하는 간단한 분석 및 코드 예제에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-06 13:32:561250검색

문제 설명

무작위로 배열된 숫자 집합을 작은 것부터 큰 것 순서로 다시 배열합니다.

삽입 알고리즘

배열에서 한 숫자씩 가져와 기존 숫자와 비교하여 적절한 위치에 삽입합니다.

이 방법을 반복하면 숫자가 제거될 때까지 기존 숫자를 순서대로 유지할 수 있을 때마다, 즉 정렬이 성공합니다.

이것은 카드 놀이를 할 때 카드를 뽑는 상황과 매우 유사합니다.

첫 번째 조건: 손에 있는 카드의 순서를 올바르게 유지하세요
두 번째 조건: 매번 새로운 카드를 뽑습니다. 시간 카드는 손에 있는 카드 중앙에 순서대로 삽입됩니다.
이 두 항목을 변경하지 않고 유지하면 몇 장의 카드를 뽑더라도 마지막에 손에 있는 카드가 순서대로 정렬됩니다.

Python 구현:

def insertion_sort(n):
 if len(n) == 1:
  return n
 b = insertion_sort(n[1:])
 m = len(b)
 for i in range(m):
  if n[0] <= b[i]:
   return b[:i]+[n[0]]+b[i:]
 return b + [n[0]]


다른 버전:

def insertion_sort(lst):
 if len(lst) == 1:
  return lst

 for i in xrange(1, len(lst)):
  temp = lst[i]
  j = i - 1
  while j >= 0 and temp < lst[j]:
   lst[j + 1] = lst[j]
   j -= 1
  lst[j + 1] = temp
 return lst


Python에서 삽입정렬 알고리즘을 사용한 간단한 분석과 코드예제에 대한 자세한 설명은 PHP 중국어 홈페이지를 참고해주세요!

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