삽입 정렬의 기본 개념:
각 단계에서 정렬할 레코드는 키 값의 크기에 따라 이전에 정렬된 파일의 적절한 위치에 삽입됩니다. 삽입됨.
예:
arr = [49,38,04,97,76,13,27,49,55,65], 두 번째 숫자부터 키 값으로 시작하여 앞으로 비교 , 이전 숫자가 더 크면 교환하고
arr = [38,49,04,97,76,13,27,49,55,65] 다음 세 번째 숫자를 키로 사용합니다. value , 순방향 비교, 첫 번째 값이 더 크면 교환,
arr = [38,04,49,97,76,13,27,49,55,65], 계속, arr = [04 ,38, 49,97,76,13,27,49,55,65]
참고: 순방향 비교 시 이전 배열이 정렬되기 때문에 이전 숫자가 다음보다 작거나 같을 때 이 순방향 비교 루프를 깨뜨릴 수 있으며 알고리즘 속도가 크게 향상됩니다.
코드:
def insert_sort(lists): #插入排序 count = len(lists) for i in range(1,count):#从第2个数起遍历 key = lists[i] j = i - 1 while j >= 0: if lists[j] > key: lists[j+1], lists[j] = lists[j], key else: break #当前一个数小于或等于key时,跳出循环 j -= 1 return lists