버블 정렬(bubble sort)

2022. 4. 19. 13:03C++/알고리즘

버블 정렬 (bubble sort)

버블 정렬은 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환하는 비교-교환 과정을 리스트 왼쪽 끝에서 시작하여 오른쪽 끝까지 진행한다. 이러한 리스트의 비료-교환 과정이 한번 완료되면 가장 큰 레코드가 리스트의 오른쪽 끝으로 이동된다. 

아래의 그림은 (22,37,15,19,12) 버블 정렬로 정렬한 것이다.

버블 정렬

 

아래는 위의 그림을 코드로 구현한 것이다. 

#include <iostream>
using namespace std;
#define ARRAY_SIZE 5

int main(void)
{
    int array[ARRAY_SIZE] = {22,37,15,19,12};
    for(int j = 0; j<ARRAY_SIZE;j++)
    {
        for(int i = 0; i<ARRAY_SIZE-j-1; i++)	// 큰 루프 돌 때마다, 가장 큰 숫자가 오른쪽에 가기때문에   
        {									// 마지막까지 볼 필요가 없다. 
            if(array[i]<=array[i+1])
                continue;
            else
            {
                int temp = array[i];
                array[i] = array[i+1];
                array[i+1] = temp;
            }
        }
    }

    for(int i = 0; i<ARRAY_SIZE; i++)
        cout<<array[i]<<" ";
}

 

'C++ > 알고리즘' 카테고리의 다른 글

재귀함수로 팩토리얼 구하기  (0) 2022.04.21
이진탐색(binary search)  (0) 2022.04.19
루트 불변성  (0) 2022.04.07
삽입 정렬 - 1  (0) 2022.04.06
자료구조  (0) 2022.04.06