>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 8가지 주요 정렬 알고리즘 구현 - Hill 정렬

Python을 사용하여 8가지 주요 정렬 알고리즘 구현 - Hill 정렬

巴扎黑
巴扎黑원래의
2016-11-26 11:51:53950검색

힐 정렬의 기본 아이디어:

힐 정렬은 삽입 정렬을 기반으로 한 개선입니다. 삽입 정렬은 배열된 배열에서 작동할 때 효율적이므로 삽입 정렬은 일반적으로 비효율적입니다. 한번에 이동할 수 있습니다. 따라서 Hill 정렬은 그룹화 증분이 1이 될 때까지 먼저 그룹화하여 정렬합니다.

예:

arr = [49,38,04,97,76,13,27,49,55,65], 그룹화 증분이 5인 경우 빨간색 숫자는 1입니다. group , 삽입 정렬을 수행하고

을 차례로 반복하여 arr = [13,38,04,97,76,49,27,49,55,65] 순회가 완료된 후 그룹화 증분. 감소,

arr = [13,27,04,55,65,49,38,49,97,76], 그런 다음 그룹화 증분 2로 그룹에 대해 삽입 정렬을 계속 수행합니다. 그룹화 증분은 1

코드:

Python 코드

def shell_sort(lists):

#Hill 정렬

count = len (목록)

단계 = 2

그룹 = 개수 / 단계

while group > 0: #그룹 증분 그룹화를 통한 루프

for i in range(0, group):

j = i + group

while j < count: # 증가분만큼 증가하는 그룹의 키 값 인덱스

k = j - 그룹

key = listed[j]

while k >= 0: #그룹 내 삽입 정렬

if listed[k] >

                                                       목록[k + 그룹],                       ~ ~                                    이후 🎜>

그룹 /= ​​단계

반품 목록

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