티스토리 뷰
반응형
개발자의 C언어 독학 기초 # 응용편 / 버블정렬 bubble sort
모든 강의 자료 : www.codingnow.co.kr/
C언어 구문을 응용하여 일반적인 정렬 알고리즘을 구현해 보자.
버블정렬은 매우 간단한 알고리즘이면서 가장 흔하게 실무에서 사용하는 자료구조이다.
알고리즘의 기존 원리는 다음 그림과 같다.
다중 for를 사용하여 현재 선택된 값이 크면 이동하는 형태이다.
소스 코드를 종이에 그려가면서 값이 이동되는 것을 확인하면 분석하는 것이 이해에 도움이 된다.
#include <stdio.h>
#include <windows.h> //system 명령 실행을 위해
void BubbleSort(int var[], int count)
{
int temp;
for (int i = 0; i < count; i++)
{
for (int j = 0; j < count - 1; j++)
{
if (var[j] > var[j + 1])
{
temp = var[j];
var[j] = var[j + 1];
var[j + 1] = temp;
}
}
}
}
void main(void)
{
system("chcp 65001"); //gcc 한글 깨짐
system("cls"); //화면지움
int TargetArr[10] = { 7, 2, 3, 5, 4, 8, 6, 9, 10, 1 };
//정렬하기전 값 출력
printf("\n정렬 전 : ");
for (int i = 0; i < 10; i++)
{
printf("%d ", TargetArr[i]);
}
BubbleSort(TargetArr, 10);// 버븦 정렬 함수 호출
printf("\n\n");
printf("정렬 후 : ");
for (int i = 0; i < 10; i++)
{
printf("%d ", TargetArr[i]);
}
printf("\n\n");
return;
}
매우 심플한 알고리즘 이지만 실무에 많이 사용되는 것으로 확실하게 알아 두는게 좋다.
반응형
'C언어 강의' 카테고리의 다른 글
개발자의 C언어 독학 기초 # 응용 / 선택정렬 (0) | 2020.04.14 |
---|---|
개발자의 C언어 독학 기초 # 응용 / 삽입정렬 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 구조체 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 함수 (0) | 2020.04.14 |
개발자의 C언어 독학 기초 # 포인터 (0) | 2020.04.13 |