본문 바로가기
자료구조

버블 정렬(Bubble Sort)

by winston1214 2021. 10. 22.
반응형

버블 정렬(Bubble Sort)는 배열 속의 모든 값을 비교해서 서로 자리를 바꾸는 알고리즘이다.

인접한 원소와 인접한 원소의 크기를 비교해서 자리를 바꾸는 알고리즘이다.

ADL은 다음과 같다.

bubbleSort(a[],n)
	for (i <- n; i >= 1; i<- i-1) do
    	for (j <- 1; j<i; j <- j+1) do
        	if (a[j] > a[j+1]) then a[j]와 a[j+1] 교환;
end bubbleSort()

바로 예시를 들어서 진행과정을 봐보자

[3,2,5,1,4] 를 정렬하는 과정이다.

bubble sort

위 과정과 같이 하나하나씩 비교해가면서 끝자리(가장 큰 수)를 먼저 정렬하는 과정이다.

이는 selection sort와 동일하게 N개의 원소 각각에 대해 N-1 번 비교하게 되므로 \( O(N^{2} \) 이다.

python 코드는 다음과 같다.

def bubblesort(a,n):
    for i in range(n,0,-1):
        for j in range(1,i):
            if a[j] > a[j+1]:
                a[j], a[j+1] = a[j+1], a[j]
    return a

a = [-1,11,15,7,2,8,5,3,1,6,13,14,9,12,10,4]
print(bubblesort(a, len(a)-1))
반응형

'자료구조' 카테고리의 다른 글

쉘 정렬(Shell Sort)  (0) 2021.10.23
삽입 정렬(Insertion Sort)  (0) 2021.10.23
선택 정렬  (0) 2021.10.22
Red-black Tree  (0) 2021.10.22
Linked List - C와 Python 비교 - 개념  (1) 2020.07.15

댓글