Python/알고리즘

정렬 알고리즘 - 삽입 정렬

개발게발 2022. 9. 6. 21:43

처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입합니다.

시간 복잡도는 O(N^2)이며 최선의 경우 O(N)

 

 

 

 

 

 

답안 예시

array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]

for i in range(1, len(array)):
    for j in range(i, 0, -1) # 인덱스 i부터 1까지 1씩 감소하며 반복하는 문법
        if array[j] < array[j-1]: # 한 칸씩 왼쪽으로 이동
            array[j], array[j-1] = array[j-1], array[j]
        else: # 자기보다 작은 데이터를 만나면 그 위치에서 멈춤
            break
            
print(array)

 

작성한 답안

numList = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8]

for i in range(1, len(numList)):
    for j in range(0, i):
        if numList[j] > numList[i]:
            numList[j], numList[i] = numList[i], numList[j]
            
print(numList)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

출처 : https://www.youtube.com/watch?v=KGyK-pNvWos&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=4