본문 바로가기
자료구조 알고리즘

버블정렬 (C#)

by LemongO 2024. 5. 19.

📌 버블정렬 (Bubble Sort) 란?

버블 정렬은 인접한 두 원소를 비교하여 큰 원소를 뒤로 보내는 방식으로 정렬하는 알고리즘이다. 이 과정을 배열의 모든 원소에 대해 반복하며, 가장 큰 원소부터 차례대로 배열의 끝으로 이동하게 된다. 버블 정렬은 구현이 간단하지만, 평균 및 최악의 경우 시간 복잡도가 O(n^2)으로 비효율적이다.

 

비효율적이라고 써놓긴 했지만 기초 알고리즘이므로 알고리즘 이해를 위해

반드시 공부해야 하니 진행해 보도록 하자!

 

다음과 같은 배열이 있다고 할 때 오름차순으로 정렬을 해보자.

 

버블 정렬은 다음과 같이 이루어진다.

 

위처럼 첫 사이클에서 원소가 n개의 배열일 때 0 ~ n-1 번째 원소와 인접한 원소를 비교해 정렬을 한다.

이때, 오름차순 기준 한 사이클을 돌면 배열에서 가장 큰 원소가 마지막 원소가 된다.

 

  • i = 0번 원소부터 n개의 원소일 때 i < n - 1까지 반복한다 
  • j = 0번 원소부터 비교를 하고,
    한 사이클을 돌면 i번 사이클의 마지막 원소는 정렬이 돼있으므로 j < n - i - 1까지 반복한다.
public void BubbleSort(int[] arr)
{
    int n = arr.Length - 1;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

 

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

이진 탐색 (C#)  (0) 2024.05.27
선형 탐색 (C#)  (0) 2024.05.19
선택정렬 (C#)  (0) 2024.05.19
(C#) BFS  (0) 2024.05.12
(C#) DFS  (0) 2024.05.10