나의 공부 일기

Python) 정렬 알고리즘 본문

파이썬/파이썬 정리

Python) 정렬 알고리즘

곽병권 2023. 10. 16. 13:45
728x90

정렬 알고리즘 중 하나인 버블(Bubble)정렬에 대해 정리해보겠습니다.

 

버블 정렬이란 서로 인접한 두 원소를 검사 비교하여 정렬하는 알고리즘을 말합니다.

인접한 2개의 레코드를 비교하여 크기가 순서대로 정렬되어있지 않다면 두 값을 서로 교환해주는것을 말합니다.

 

 

파이썬에서 이를 구현할때는 조금 다르게 구현되는데,

정렬할 리스트에 관한 반복문 두개를 생성 한 뒤 

처음 반복문에서 비교시킬 값을 고정시키고 두번째 반복문에서 첫번째 반복문에서 고정시킨값과 비교하며 정렬방식에 맞게 더 작거나 더 큰 값이면 바꿔주는 이런걸 말합니다.

 

 

처음값 9와 나머지값 4 5 1 3 을 비교하여 더 작은 값일경우 서로 변경해주는 코드입니다.

lst = [9,4,5,1,3]

for i in range(len(lst)-1) :
    for j in range(i+1,len(lst)):
        if lst[i] > lst[j] :
            tmp = lst[i]
            lst[i] = lst[j]
            lst[j] = tmp

이 코드를 가지고 어떻게 변화해가는지 표를 통하여 정리해보겠습니다.

 

lst[0] 변화

 

 

 

이 순서대로 리스트의 길이만큼 반복하여 변경해주는것이 버블정렬 알고리즘입니다.

 

이렇게 반복해서 계속 실행하면 

lst[1] 변화과정

lst[2] 변화과정

lst[3] 변화과정

 

최종적으로 lst[1,3,4,9,5] 로 오름차순 정렬이 되어진걸 확인하실 수 있습니다.

 


여기까지 버블정렬 알고리즘에 대해 하나하나 자세히 정리해보았습니다.

궁금하신점 남겨주시면 답변해드리겠습니다.

728x90