반응형
🌀 C언어 버블 정렬(Bubble Sort) 쉽게 배우기 – 정렬 알고리즘 기초
정렬 알고리즘은 데이터를 순서대로 정리하는 방법입니다.
이번 글에서는 가장 기본적인 정렬 알고리즘인 버블 정렬(Bubble Sort)을 C언어로 구현해봅니다.
✅ 1. 버블 정렬이란?
버블 정렬은 인접한 두 값을 비교해서 큰 값을 뒤로 보내는 방식입니다.
여러 번 반복하면서 가장 큰 값이 끝으로 “버블처럼 올라가는” 원리입니다.
✅ 2. 버블 정렬 알고리즘 동작
- 배열의 첫 번째 값부터 시작
- 인접한 두 값을 비교
- 앞의 값이 크면 자리 바꿈
- 이 과정을 끝까지 반복
- 한 번 반복이 끝날 때마다 가장 큰 값이 끝으로 이동
✅ 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. 연습 문제
- 배열
{10, 2, 8, 6, 7}
를 버블 정렬로 정렬해보세요. - 내림차순 정렬 코드로 바꿔보세요.
- 입력받은 숫자들을 정렬하는 프로그램을 작성해보세요.
📌 내부 링크 시리즈 구조
C언어 기초 학습 시리즈:
- [Day 1] Hello World 프로그램 작성하기
- [Day 2] 변수와 자료형
- [Day 3] scanf로 입력받기
- [Day 4] 조건문(if, else)
- [Day 5] 반복문(for, while)
- [Day 6] 배열(array)
- [Day 7] 함수(function)
- [Day 8] 정렬 알고리즘 – 버블 정렬
📌 다음 강의 예고
다음 글에서는 선택 정렬(Selection Sort)을 배웁니다.
버블 정렬과의 차이점과 장단점을 비교해봅니다.
👉 다음 글: C언어 선택 정렬(Selection Sort)
이 글이 도움이 되셨다면 댓글과 공감 부탁드립니다!
더 많은 학습 글은 👉 Coding Life 100 Hacks 에서 확인하세요 😊
반응형
'c언어 입문' 카테고리의 다른 글
C언어 선택 정렬(Selection Sort) 쉽게 배우기 – 정렬 알고리즘 기초 (0) | 2025.09.10 |
---|---|
[C언어 기초] 함수(function) 쉽게 배우기 – 코드 재사용의 시작 (3) | 2025.08.11 |
[C언어 기초] 배열(array) 쉽게 배우기 – 여러 개의 데이터를 한번에 다루기 (1) | 2025.08.08 |
[C언어 기초] 반복문(for, while) 쉽게 배우기 – 구구단 만들기 실습 (3) | 2025.08.05 |
[C언어 기초] 조건문(if, else) 쉽게 배우기 – 점수 판별 프로그램 만들기 (0) | 2025.08.02 |
댓글