본문 바로가기
c언어 입문

C언어 버블 정렬(Bubble Sort) 쉽게 배우기 – 정렬 알고리즘 기초

by 두뇌향상중 2025. 9. 5.
반응형

🌀 C언어 버블 정렬(Bubble Sort) 쉽게 배우기 – 정렬 알고리즘 기초

정렬 알고리즘은 데이터를 순서대로 정리하는 방법입니다.
이번 글에서는 가장 기본적인 정렬 알고리즘인 버블 정렬(Bubble Sort)을 C언어로 구현해봅니다.


✅ 1. 버블 정렬이란?

버블 정렬은 인접한 두 값을 비교해서 큰 값을 뒤로 보내는 방식입니다.
여러 번 반복하면서 가장 큰 값이 끝으로 “버블처럼 올라가는” 원리입니다.


✅ 2. 버블 정렬 알고리즘 동작

  1. 배열의 첫 번째 값부터 시작
  2. 인접한 두 값을 비교
  3. 앞의 값이 크면 자리 바꿈
  4. 이 과정을 끝까지 반복
  5. 한 번 반복이 끝날 때마다 가장 큰 값이 끝으로 이동

✅ 3. C언어 코드 예제

#include <stdio.h>

int main() {
    int arr[5] = {5, 3, 4, 1, 2};
    int n = 5;

    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }

    printf("정렬 결과: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

❗ 4. 자주 하는 실수

  • 반복 횟수 잘못 설정 → i <= n으로 쓰면 배열 인덱스 초과 발생
  • 임시 변수(temp) 없이 교환 시 값 손실
  • 정렬 확인 없이 불필요하게 계속 반복 → 성능 저하

📝 5. 연습 문제

  1. 배열 {10, 2, 8, 6, 7}를 버블 정렬로 정렬해보세요.
  2. 내림차순 정렬 코드로 바꿔보세요.
  3. 입력받은 숫자들을 정렬하는 프로그램을 작성해보세요.

📌 내부 링크 시리즈 구조

C언어 기초 학습 시리즈:


📌 다음 강의 예고

다음 글에서는 선택 정렬(Selection Sort)을 배웁니다.
버블 정렬과의 차이점과 장단점을 비교해봅니다.

👉 다음 글: C언어 선택 정렬(Selection Sort)


이 글이 도움이 되셨다면 댓글과 공감 부탁드립니다!
더 많은 학습 글은 👉 Coding Life 100 Hacks 에서 확인하세요 😊

반응형

댓글