본문 바로가기
c & c++/algorithm

버블정렬(Bubble sort)

by 일상코더 2022. 6. 28.

Goal

      - Bubble Sort 에 대해 설명할 수 있다.

      - Bubble Sort 과정에 대해 설명할 수 있다.

      - Bubble Sort를 구현할 수 있다.

      - Bubble Sort의 시간 복잡도를 계산 할 수 있다.


1. Bubble Sort Summary

   

     '옆에 있는 값과 비교해서 더 작은 값을 앞으로 보내기'

     '알고리즘 중에서 구현은 가장 쉽지만 가장 비효율적인 알고리즘'


2. Bubble Sort Processing

 

1. 첫번째 원소와 두번째 원소를 , 두번째 원소와 세번째 원소를.... 마지막-1 번째 원소와 마지막 원소 비교

2. 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동하므로 1회전 수행할 때마다 정렬에서 제외되는 데이터가 늘어난다.


3. Bubble Sort Coding

 

 


4. Bubble Sort 시간 복잡도

 

    데이터의 개수가 n개라고 했을때

                   - 첫 번째 회전에서의 비교횟수 : 1 ~ (n-1) => n-1

                   - 두 번째 회전에서의 비교횟수 : 2 ~ (n-2) => n-2

                      ....

                   - (n-1) + (n-2) ..... + 2 + 1 => N * (N-1) /2 (등차수열) 

                   => 컴퓨터에서는 가장 큰 차수인 n^2만 보고 0(N^2) 라고 표현

    

     시간 복잡도는 선택정렬과 동일하지만, 

     내부적인 연산이 가장 비효율적으로 일어나게 되어 실제 수행시간이 가장 느린 안좋은 알고리즘

'c & c++ > algorithm' 카테고리의 다른 글

병합 정렬(Merge Sort)  (0) 2022.07.01
퀵 정렬(Quick Sort)  (0) 2022.06.28
삽입정렬(Insertion Sort)  (0) 2022.06.28
선택정렬(selection sort)  (0) 2022.06.28
알고리즘(algorithm) 산법, 셈법, 계산절차  (0) 2022.06.28

댓글