본문 바로가기
▶ 프로그래밍 [Programming]/▷ C 언어 [C Language]

[C 언어] 버블소트(bubble sort)를 이용한 정렬 사용 예시 (example code)

by (๑′ᴗ‵๑) 2021. 11. 24.
반응형

 

 

안녕하세요,

 

오늘은 버블 소트 예시에 대해 포스팅 해보도록 하겠습니다.

 

 

버블 정렬은 시간복잡도가 O(n^2)로 그다지 효율적인 알고리즘은 아닙니다. 그럼에도 많이 사용되는 이유는 이해하기 쉬운 알고리즘과 낮은 구현 난이도 때문이 아닐까 합니다.

 

C 언어 기준으로 예제 코드 및 결과를 작성해보도록 하겠습니다.

 

반응형

 

버블 소트를 이용한 배열 정렬하기

 

위의 코드는 오름차순 기준으로 작성한 코드입니다.

#include <stdio.h>

// bubble sort prototype
void bubble_sort(int *, int);
int main()
{
    int arr[] = {5, 2, 3, 1, 4};
    int arr_cnt = 5;

    printf("Before sorting the array\n");
    for (int i = 0; i < arr_cnt; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // Sorting
    bubble_sort(arr, arr_cnt);

    printf("After sorting the array\n");
    for (int i = 0; i < arr_cnt; i++)
    {
        printf("%d ", arr[i]);
    }
}

// Bubble Sort
void bubble_sort(int *array, int cnt)
{
    int tmp;
    for (int i = 0; i < cnt; i++)
    {
        for (int j = 0; j < cnt - (i + 1); j++)
        {
            // compare and change positions
            if (array[j> array[j + 1])
            {
                tmp = array[j + 1];
                array[j + 1] = array[j];
                array[j= tmp;
            }
        }
    }
}
 
 
결과 
Before sorting the array
5 2 3 1 4
After sorting the array
1 2 3 4 5
 
 
다른 타입의 배열을 정렬하고 싶다면, bubble_sort 의 파라미터 타입을 수정하면 됩니다. 마찬가지로 내림차순으로 정렬하고 싶다면 비교하는 부분을 array[j] < array[j + 1] 로 수정해주면 됩니다.
 
 

지금까지 버블 소트를 이용한 배열 정렬 예시였습니다.

읽어주셔서 감사합니다.

 

반응형

댓글