더북(TheBook)

예를 들어 프로그램에서 알고리즘이 느린 이유를 알아보고 싶다고 하자. 다음 코드에서는 삽입 정렬(insertion sort)을 사용해 데이터 리스트를 정렬하는 함수를 정의한다.

def insertion_sort(data):
    result = []
    for value in data:
        insert_value(result, value)
    return result

삽입 정렬의 핵심 메커니즘은 데이터 조각을 삽입할 위치를 찾는 함수다. 다음은 입력 배열을 선형 검색하는 아주 비효율적인 insert_value 함수다.

def insert_value(array, value):
    for i, existing in enumerate(array):
        if existing > value:
            array.insert(i, value)
            return
    array.append(value)