본문 바로가기

Python/알고리즘 및 자료구조

버블정렬(Bubble Sort)

버블정렬

버블정렬이란 인접한 두 원소를 비교하여 순서에 맞지 않을 경우 변경하는 정렬이다.

속도가 느린 알고리즘 이지만 코드가 비교적 간단하다.

버블정렬 시간복잡도: O(n2)

 

def bubble_func(li):
    for i in range(len(li)-1,-1,-1):# 배열의 길이-1 부터 0 까지 반복
        for j in range(0,i,1): # 0 부터 i-1 까지 반복
            if li[j] > li[j+1]: # j번인덱스와 다음 인덱스 비교하여
                temp = li[j]    # 이전 인덱스가 더 큰경우
                li[j] = li[j+1] # 이전인덱스와 다음 인덱스의 숫자 변경
                li[j+1] = temp
                print(li)
    return li

bubble_list = bubble_func([1,5,3,8,2,6,7,100,10,12])
print("최종결과")
print(bubble_list)

 

정렬 과정 및 최종결과

[1, 3, 5, 8, 2, 6, 7, 100, 10, 12]
[1, 3, 5, 2, 8, 6, 7, 100, 10, 12]
[1, 3, 5, 2, 6, 8, 7, 100, 10, 12]
[1, 3, 5, 2, 6, 7, 8, 100, 10, 12]
[1, 3, 5, 2, 6, 7, 8, 10, 100, 12]
[1, 3, 5, 2, 6, 7, 8, 10, 12, 100]
[1, 3, 2, 5, 6, 7, 8, 10, 12, 100]
[1, 2, 3, 5, 6, 7, 8, 10, 12, 100]
최종결과
[1, 2, 3, 5, 6, 7, 8, 10, 12, 100]

'Python > 알고리즘 및 자료구조' 카테고리의 다른 글

스택(Stack)  (0) 2021.03.07
퀵 정렬(quick sort)  (0) 2021.03.06
합병 정렬(merge sort)  (0) 2021.03.05
선택정렬  (0) 2021.03.05
팩토리얼(factorial)과 재귀호출  (0) 2021.03.04