정렬에는 버블 정렬, 삽입 정렬, 힙 정렬, 퀵 정렬 등 여러가지가 있는데, 버블 정렬이란 가장 간단한 정렬 알고리즘으로, 서로 이웃한 값들을 비교하여 큰 값을 뒤로 넘기며 정렬합니다.
int arr[5] = {14, 12, 1, 5, 10}
위와 같은 배열에 버블 정렬을 적용시켜보자.
버블 정렬은 이처럼 인접한 두 값을 비교해나가면서 큰 수를 계속해서 뒤로 보내는 방법이다.
#include <stdio.h>
int main()
{
int arr[10] = { 9, 17, 5, 6, 124, 112, 1, 3, 87, 55 };
int temp; // 두 값을 바꿀 때 사용할 변수
int length = sizeof(arr) / sizeof(int);
printf("정렬 전 : ");
for(int i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
for(int i = 0; i < length - 1; i++)
{
for(int j = 0; j < length -1 -i; j++)
{
if(arr[j + 1] < arr[j])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("\n정렬 후 : ");
for(int i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
return 0;
}